AddQuarters() public method

public AddQuarters ( int count ) : Quarter
count int
return Quarter
コード例 #1
0
ファイル: QuarterTest.cs プロジェクト: HoLoveSalt/showhotel
        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.AreEqual( calendarQuarter.AddQuarters( 0 ), calendarQuarter );

            Quarter prevQ1 = calendarQuarter.AddQuarters( -1 );
            Assert.AreEqual( prevQ1.YearQuarter, YearQuarter.Fourth );
            Assert.AreEqual( prevQ1.BaseYear, currentYear - 1 );
            Assert.AreEqual( prevQ1.Start, calendarStartDate.AddMonths( -3 ) );
            Assert.AreEqual( prevQ1.End, calendarStartDate );

            Quarter prevQ2 = calendarQuarter.AddQuarters( -2 );
            Assert.AreEqual( prevQ2.YearQuarter, YearQuarter.Third );
            Assert.AreEqual( prevQ2.BaseYear, currentYear - 1 );
            Assert.AreEqual( prevQ2.Start, calendarStartDate.AddMonths( -6 ) );
            Assert.AreEqual( prevQ2.End, calendarStartDate.AddMonths( -3 ) );

            Quarter prevQ3 = calendarQuarter.AddQuarters( -3 );
            Assert.AreEqual( prevQ3.YearQuarter, YearQuarter.Second );
            Assert.AreEqual( prevQ3.BaseYear, currentYear - 1 );
            Assert.AreEqual( prevQ3.Start, calendarStartDate.AddMonths( -9 ) );
            Assert.AreEqual( prevQ3.End, calendarStartDate.AddMonths( -6 ) );

            Quarter prevQ4 = calendarQuarter.AddQuarters( -4 );
            Assert.AreEqual( prevQ4.YearQuarter, YearQuarter.First );
            Assert.AreEqual( prevQ4.BaseYear, currentYear - 1 );
            Assert.AreEqual( prevQ4.Start, calendarStartDate.AddMonths( -12 ) );
            Assert.AreEqual( prevQ4.End, calendarStartDate.AddMonths( -9 ) );

            Quarter prevQ5 = calendarQuarter.AddQuarters( -5 );
            Assert.AreEqual( prevQ5.YearQuarter, YearQuarter.Fourth );
            Assert.AreEqual( prevQ5.BaseYear, currentYear - 2 );
            Assert.AreEqual( prevQ5.Start, calendarStartDate.AddMonths( -15 ) );
            Assert.AreEqual( prevQ5.End, calendarStartDate.AddMonths( -12 ) );

            Quarter futureQ1 = calendarQuarter.AddQuarters( 1 );
            Assert.AreEqual( futureQ1.YearQuarter, YearQuarter.Second );
            Assert.AreEqual( futureQ1.BaseYear, currentYear );
            Assert.AreEqual( futureQ1.Start, calendarStartDate.AddMonths( 3 ) );
            Assert.AreEqual( futureQ1.End, calendarStartDate.AddMonths( 6 ) );

            Quarter futureQ2 = calendarQuarter.AddQuarters( 2 );
            Assert.AreEqual( futureQ2.YearQuarter, YearQuarter.Third );
            Assert.AreEqual( futureQ2.BaseYear, currentYear );
            Assert.AreEqual( futureQ2.Start, calendarStartDate.AddMonths( 6 ) );
            Assert.AreEqual( futureQ2.End, calendarStartDate.AddMonths( 9 ) );

            Quarter futureQ3 = calendarQuarter.AddQuarters( 3 );
            Assert.AreEqual( futureQ3.YearQuarter, YearQuarter.Fourth );
            Assert.AreEqual( futureQ3.BaseYear, currentYear );
            Assert.AreEqual( futureQ3.Start, calendarStartDate.AddMonths( 9 ) );
            Assert.AreEqual( futureQ3.End, calendarStartDate.AddMonths( 12 ) );

            Quarter futureQ4 = calendarQuarter.AddQuarters( 4 );
            Assert.AreEqual( futureQ4.YearQuarter, YearQuarter.First );
            Assert.AreEqual( futureQ4.BaseYear, currentYear + 1 );
            Assert.AreEqual( futureQ4.Start, calendarStartDate.AddMonths( 12 ) );
            Assert.AreEqual( futureQ4.End, calendarStartDate.AddMonths( 15 ) );

            Quarter futureQ5 = calendarQuarter.AddQuarters( 5 );
            Assert.AreEqual( futureQ5.YearQuarter, YearQuarter.Second );
            Assert.AreEqual( futureQ5.BaseYear, currentYear + 1 );
            Assert.AreEqual( futureQ5.Start, calendarStartDate.AddMonths( 15 ) );
            Assert.AreEqual( futureQ5.End, calendarStartDate.AddMonths( 18 ) );
        }
コード例 #2
0
        // ----------------------------------------------------------------------
        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;
            }
        }