} // Clear // ---------------------------------------------------------------------- private void SelectPeriod(PeriodSelectType periodSelectType) { int offset = 0; switch (periodSelectType) { case PeriodSelectType.Previous: offset = -1; break; case PeriodSelectType.Current: ResetWorkingPeriod(); return; case PeriodSelectType.Next: offset = 1; break; } switch (WorkingTimePeriod) { case TimePeriodMode.Year: Year year = new Year(WorkingPeriodStartDate); SetWorkingPeriod(year.AddYears(offset)); break; case TimePeriodMode.Halfyear: Halfyear halfyear = new Halfyear(WorkingPeriodStartDate); SetWorkingPeriod(halfyear.AddHalfyears(offset)); break; case TimePeriodMode.Quarter: Quarter quarter = new Quarter(WorkingPeriodStartDate); SetWorkingPeriod(quarter.AddQuarters(offset)); break; case TimePeriodMode.Month: Month month = new Month(WorkingPeriodStartDate); SetWorkingPeriod(month.AddMonths(offset)); break; case TimePeriodMode.Week: Week week = new Week(WorkingPeriodStartDate); SetWorkingPeriod(week.AddWeeks(offset)); break; case TimePeriodMode.Day: Day day = new Day(WorkingPeriodStartDate); SetWorkingPeriod(day.AddDays(offset)); break; } } // SelectPeriod
public void AddQuartersTest() { int currentYear = ClockProxy.Clock.Now.Year; const YearMonth yearStartMonth = YearMonth.April; TimeCalendar calendar = TimeCalendar.New(TimeSpan.Zero, TimeSpan.Zero, yearStartMonth); DateTime calendarStartDate = new DateTime(currentYear, 4, 1); Quarter calendarQuarter = new Quarter(currentYear, YearQuarter.First, calendar); Assert.Equal(calendarQuarter.AddQuarters(0), calendarQuarter); Quarter prevQ1 = calendarQuarter.AddQuarters(-1); Assert.Equal(YearQuarter.Fourth, prevQ1.YearQuarter); Assert.Equal(prevQ1.BaseYear, currentYear - 1); Assert.Equal(prevQ1.Start, calendarStartDate.AddMonths(-3)); Assert.Equal(prevQ1.End, calendarStartDate); Quarter prevQ2 = calendarQuarter.AddQuarters(-2); Assert.Equal(YearQuarter.Third, prevQ2.YearQuarter); Assert.Equal(prevQ2.BaseYear, currentYear - 1); Assert.Equal(prevQ2.Start, calendarStartDate.AddMonths(-6)); Assert.Equal(prevQ2.End, calendarStartDate.AddMonths(-3)); Quarter prevQ3 = calendarQuarter.AddQuarters(-3); Assert.Equal(YearQuarter.Second, prevQ3.YearQuarter); Assert.Equal(prevQ3.BaseYear, currentYear - 1); Assert.Equal(prevQ3.Start, calendarStartDate.AddMonths(-9)); Assert.Equal(prevQ3.End, calendarStartDate.AddMonths(-6)); Quarter prevQ4 = calendarQuarter.AddQuarters(-4); Assert.Equal(YearQuarter.First, prevQ4.YearQuarter); Assert.Equal(prevQ4.BaseYear, currentYear - 1); Assert.Equal(prevQ4.Start, calendarStartDate.AddMonths(-12)); Assert.Equal(prevQ4.End, calendarStartDate.AddMonths(-9)); Quarter prevQ5 = calendarQuarter.AddQuarters(-5); Assert.Equal(YearQuarter.Fourth, prevQ5.YearQuarter); Assert.Equal(prevQ5.BaseYear, currentYear - 2); Assert.Equal(prevQ5.Start, calendarStartDate.AddMonths(-15)); Assert.Equal(prevQ5.End, calendarStartDate.AddMonths(-12)); Quarter futureQ1 = calendarQuarter.AddQuarters(1); Assert.Equal(YearQuarter.Second, futureQ1.YearQuarter); Assert.Equal(futureQ1.BaseYear, currentYear); Assert.Equal(futureQ1.Start, calendarStartDate.AddMonths(3)); Assert.Equal(futureQ1.End, calendarStartDate.AddMonths(6)); Quarter futureQ2 = calendarQuarter.AddQuarters(2); Assert.Equal(YearQuarter.Third, futureQ2.YearQuarter); Assert.Equal(futureQ2.BaseYear, currentYear); Assert.Equal(futureQ2.Start, calendarStartDate.AddMonths(6)); Assert.Equal(futureQ2.End, calendarStartDate.AddMonths(9)); Quarter futureQ3 = calendarQuarter.AddQuarters(3); Assert.Equal(YearQuarter.Fourth, futureQ3.YearQuarter); Assert.Equal(futureQ3.BaseYear, currentYear); Assert.Equal(futureQ3.Start, calendarStartDate.AddMonths(9)); Assert.Equal(futureQ3.End, calendarStartDate.AddMonths(12)); Quarter futureQ4 = calendarQuarter.AddQuarters(4); Assert.Equal(YearQuarter.First, futureQ4.YearQuarter); Assert.Equal(futureQ4.BaseYear, currentYear + 1); Assert.Equal(futureQ4.Start, calendarStartDate.AddMonths(12)); Assert.Equal(futureQ4.End, calendarStartDate.AddMonths(15)); Quarter futureQ5 = calendarQuarter.AddQuarters(5); Assert.Equal(YearQuarter.Second, futureQ5.YearQuarter); Assert.Equal(futureQ5.BaseYear, currentYear + 1); Assert.Equal(futureQ5.Start, calendarStartDate.AddMonths(15)); Assert.Equal(futureQ5.End, calendarStartDate.AddMonths(18)); } // AddQuartersTest