public void SingleYearsTest() { const int startYear = 2004; Years years = new Years( startYear, 1 ); Assert.AreEqual( years.YearCount, 1 ); Assert.AreEqual( years.StartYear, startYear ); Assert.AreEqual( years.EndYear, startYear ); Assert.AreEqual( years.GetYears().Count, 1 ); Assert.IsTrue( years.GetYears()[ 0 ].IsSamePeriod( new Year( startYear ) ) ); }
// ---------------------------------------------------------------------- public static void ShowAll( int periodCount, int startYear, TimeCalendarConfig calendarConfig ) { WriteLine( "Input: count={0}, year={1}", periodCount, startYear ); WriteLine( "Calendar: base-month={0}, week-type={1}, culture={2}", calendarConfig.YearBaseMonth, calendarConfig.YearWeekType, calendarConfig.Culture.Name ); WriteLine(); YearTimeRange yearTimeRange; if ( periodCount == 1 ) { Year year = new Year( startYear, new TimeCalendar( calendarConfig ) ); yearTimeRange = year; Year previousYear = year.GetPreviousYear(); Year nextYears = year.GetNextYear(); ShowYear( year ); ShowCompactYear( previousYear, "Previous Year" ); ShowCompactYear( nextYears, "Next Year" ); WriteLine(); } else { Years years = new Years( startYear, periodCount, new TimeCalendar( calendarConfig ) ); yearTimeRange = years; ShowYears( years ); WriteLine(); foreach ( Year year in years.GetYears() ) { ShowCompactYear( year ); } WriteLine(); } foreach ( Halfyear halfyear in yearTimeRange.GetHalfyears() ) { HalfyearDemo.ShowCompactHalfyear( halfyear ); } WriteLine(); foreach ( Quarter quarter in yearTimeRange.GetQuarters() ) { QuarterDemo.ShowCompactQuarter( quarter ); } WriteLine(); foreach ( Month month in yearTimeRange.GetMonths() ) { MonthDemo.ShowCompactMonth( month ); } WriteLine(); }
} // EnterHours // ---------------------------------------------------------------------- protected override bool OnVisitYears(Years years, CalendarPeriodCollectorContext context) { if (context.Scope != CalendarPeriodCollectorContext.CollectType.Year) { return(true); // continue } foreach (Year year in years.GetYears()) { if (IsMatchingYear(year, context) && CheckLimits(year)) { periods.Add(year); } } return(false); // abort } // OnVisitYears
public void DefaultCalendarYearsTest() { const int startYear = 2004; const int yearCount = 3; Years years = new Years( startYear, yearCount ); Assert.AreEqual( years.YearCount, yearCount ); Assert.AreEqual( years.StartYear, startYear ); Assert.AreEqual( years.EndYear, startYear + yearCount - 1 ); int index = 0; foreach ( Year year in years.GetYears() ) { Assert.IsTrue( year.IsSamePeriod( new Year( startYear + index ) ) ); index++; } }
public void CustomCalendarYearsTest() { const int startYear = 2004; const int yearCount = 3; const int startMonth = 4; Years years = new Years( startYear, yearCount, TimeCalendar.New( (YearMonth)startMonth ) ); Assert.AreEqual( years.YearCount, yearCount ); Assert.AreEqual( years.StartYear, startYear ); Assert.AreEqual( years.EndYear, startYear + yearCount ); int index = 0; foreach ( Year year in years.GetYears() ) { Assert.AreEqual( year.Start, new DateTime( startYear + index, startMonth, 1 ) ); index++; } }
public void YearStartSample() { TimeCalendar calendar = new TimeCalendar( new TimeCalendarConfig { YearBaseMonth = YearMonth.February } ); Years years = new Years( 2012, 2, calendar ); // 2012-2013 Console.WriteLine( "Quarters of Years (February): {0}", years ); // > Quarters of Years (February): 2012 - 2014; 01.02.2012 - 31.01.2014 | 730.23:59 foreach ( Year year in years.GetYears() ) { foreach ( Quarter quarter in year.GetQuarters() ) { Console.WriteLine( "Quarter: {0}", quarter ); } } // > Quarter: Q1 2012; 01.02.2012 - 30.04.2012 | 89.23:59 // > Quarter: Q2 2012; 01.05.2012 - 31.07.2012 | 91.23:59 // > Quarter: Q3 2012; 01.08.2012 - 31.10.2012 | 91.23:59 // > Quarter: Q4 2012; 01.11.2012 - 31.01.2013 | 91.23:59 // > Quarter: Q1 2013; 01.02.2013 - 30.04.2013 | 88.23:59 // > Quarter: Q2 2013; 01.05.2013 - 31.07.2013 | 91.23:59 // > Quarter: Q3 2013; 01.08.2013 - 31.10.2013 | 91.23:59 // > Quarter: Q4 2013; 01.11.2013 - 31.01.2014 | 91.23:59 }
} // StartPeriodVisit // ---------------------------------------------------------------------- protected void StartPeriodVisit(ITimePeriod period, TContext context = null) { if (period == null) { throw new ArgumentNullException("period"); } if (period.IsMoment) { return; } OnVisitStart(); Years years = calendar != null ? new Years(period.Start.Year, period.End.Year - period.Start.Year + 1, calendar) : new Years(period.Start.Year, period.End.Year - period.Start.Year + 1); if (OnVisitYears(years, context) && EnterYears(years, context)) { ITimePeriodCollection yearsToVisit = years.GetYears(); if (seekDirection == SeekDirection.Backward) { yearsToVisit.SortByEnd(); } foreach (Year year in yearsToVisit) { if (!year.OverlapsWith(period) || OnVisitYear(year, context) == false) { continue; } // months if (EnterMonths(year, context) == false) { continue; } ITimePeriodCollection monthsToVisit = year.GetMonths(); if (seekDirection == SeekDirection.Backward) { monthsToVisit.SortByEnd(); } foreach (Month month in monthsToVisit) { if (!month.OverlapsWith(period) || OnVisitMonth(month, context) == false) { continue; } // days if (EnterDays(month, context) == false) { continue; } ITimePeriodCollection daysToVisit = month.GetDays(); if (seekDirection == SeekDirection.Backward) { daysToVisit.SortByEnd(); } foreach (Day day in daysToVisit) { if (!day.OverlapsWith(period) || OnVisitDay(day, context) == false) { continue; } // hours if (EnterHours(day, context) == false) { continue; } ITimePeriodCollection hoursToVisit = day.GetHours(); if (seekDirection == SeekDirection.Backward) { hoursToVisit.SortByEnd(); } foreach (Hour hour in hoursToVisit) { if (!hour.OverlapsWith(period) || OnVisitHour(hour, context) == false) { // ReSharper disable RedundantJumpStatement continue; // ReSharper restore RedundantJumpStatement } } } } } } OnVisitEnd(); } // StartPeriodVisit