NSoft.NFramework.TimePeriods.TimeRanges.MonthRangeCollection.GetMonths C# (CSharp) Method

GetMonths() public method

public GetMonths ( ) : IEnumerable
return IEnumerable
        public IEnumerable<MonthRange> GetMonths() {
            var startTime = Start;
            return
                Enumerable
                    .Range(0, MonthCount)
#if !SILVERLIGHT
                    .AsParallel()
                    .AsOrdered()
#endif
                    .Select(m => new MonthRange(startTime.AddMonths(m), TimeCalendar));
        }

Usage Example

        public void CalendarHoursTest(int? monthCount) {
            var now = ClockProxy.Clock.Now;
            var months = new MonthRangeCollection(now, monthCount ?? 12);

            var startTime = now.TrimToDay().Add(months.TimeCalendar.StartOffset);
            var endTime = startTime.AddMonths(monthCount ?? 12).Add(months.TimeCalendar.EndOffset);

            months.Start.Should().Be(startTime);
            months.End.Should().Be(endTime);

            months.MonthCount.Should().Be(monthCount);

            var items = months.GetMonths().ToList();
            items.Count.Should().Be(monthCount);

            Enumerable
                .Range(0, monthCount ?? 12)
                .RunEach(i => {
                             items[i].Start.Should().Be(startTime.AddMonths(i));
                             items[i].End.Should().Be(months.TimeCalendar.MapEnd(startTime.AddMonths(i + 1)));

                             items[i].UnmappedStart.Should().Be(startTime.AddMonths(i));
                             items[i].UnmappedEnd.Should().Be(startTime.AddMonths(i + 1));

                             items[i].IsSamePeriod(new MonthRange(months.Start.AddMonths(i))).Should().Be.True();

                             var ym = TimeTool.AddMonth(now.Year, now.Month, i);
                             items[i].IsSamePeriod(new MonthRange(ym.Year ?? 0, ym.Month ?? 1)).Should().Be.True();
                         });
        }
All Usage Examples Of NSoft.NFramework.TimePeriods.TimeRanges.MonthRangeCollection::GetMonths