Example #1
0
        }         // 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