public void FiscalYearGetMonthsTest()
        {
            Quarter quarter = new Quarter(2006, YearQuarter.First, GetFiscalYearCalendar(FiscalYearAlignment.LastDay));
            ITimePeriodCollection months = quarter.GetMonths();

            Assert.NotNull(months);
            Assert.Equal(months.Count, TimeSpec.MonthsPerQuarter);

            Assert.Equal(months[0].Start, new DateTime(2006, 8, 27));
            for (int i = 0; i < months.Count; i++)
            {
                Assert.Equal(months[i].Duration.Subtract(TimeCalendar.DefaultEndOffset).Days,
                             (i + 1) % 3 == 0 ? TimeSpec.FiscalDaysPerLongMonth : TimeSpec.FiscalDaysPerShortMonth);
            }
            Assert.Equal(months[TimeSpec.MonthsPerQuarter - 1].End, quarter.End);
        } // FiscalYearGetMonthsTest
        public void GetMonthsTest()
        {
            Quarter quarter = new Quarter(ClockProxy.Clock.Now.Year, YearQuarter.First, TimeCalendar.New(YearMonth.October));

            ITimePeriodCollection months = quarter.GetMonths();

            Assert.NotNull(months);

            int index = 0;

            foreach (Month month in months)
            {
                Assert.Equal(month.Start, quarter.Start.AddMonths(index));
                Assert.Equal(month.End, month.Calendar.MapEnd(month.Start.AddMonths(1)));
                index++;
            }
            Assert.Equal(index, TimeSpec.MonthsPerQuarter);
        }         // GetMonthsTest
Example #3
0
        public void GetMonthsTest()
        {
            Quarter quarter = new Quarter( ClockProxy.Clock.Now.Year, YearQuarter.First, TimeCalendar.New( YearMonth.October ) );

            ITimePeriodCollection months = quarter.GetMonths();
            Assert.AreNotEqual( months, null );

            int index = 0;
            foreach ( Month month in months )
            {
                Assert.AreEqual( month.Start, quarter.Start.AddMonths( index ) );
                Assert.AreEqual( month.End, month.Calendar.MapEnd( month.Start.AddMonths( 1 ) ) );
                index++;
            }
            Assert.AreEqual( index, TimeSpec.MonthsPerQuarter );
        }
Example #4
0
 // ----------------------------------------------------------------------
 private void UpdateSelectedPeriodInfo()
 {
     TimeCalendar timeCalendar = TimeCalendar.New( SelectedYearBaseMonth );
     switch ( SelectedPeriodMode )
     {
         case TimePeriodMode.Year:
             Year year = new Year( WorkingDate, timeCalendar );
             periodInfo.Clear();
             periodInfo.AddItem( "Year", year );
             periodInfo.AddItem( "YearBaseMonth", year.YearBaseMonth );
             periodInfo.AddItem( "IsCalendarYear", year.IsCalendarYear );
             periodInfo.AddItem( "StartYear", year.StartYear );
             periodInfo.AddItem( "FirstDayStart", year.FirstDayStart );
             periodInfo.AddItem( "LastDayStart", year.LastDayStart );
             periodInfo.AddItem( "LastMonthStart", year.LastMonthStart );
             periodInfo.AddItem( "YearName", year.YearName );
             periodInfo.AddSection( "Previous/Next" );
             periodInfo.AddItem( "Previous", year.GetPreviousYear() );
             periodInfo.AddItem( "Next", year.GetNextYear() );
             periodInfo.AddSubitems( "Halfyears", year.GetHalfyears() );
             periodInfo.AddSubitems( "Quarters", year.GetQuarters() );
             periodInfo.AddSubitems( "Months", year.GetMonths() );
             SelectedPeriodInfo = periodInfo.ToString();
             break;
         case TimePeriodMode.Halfyear:
             Halfyear halfyear = new Halfyear( WorkingDate, timeCalendar );
             periodInfo.Clear();
             periodInfo.AddItem( "Halfyear", halfyear );
             periodInfo.AddItem( "YearBaseMonth", halfyear.YearBaseMonth );
             periodInfo.AddItem( "StartMonth", halfyear.StartMonth );
             periodInfo.AddItem( "Year", halfyear.Year );
             periodInfo.AddItem( "YearHalfyear", halfyear.YearHalfyear );
             periodInfo.AddItem( "IsCalendarHalfyear", halfyear.IsCalendarHalfyear );
             periodInfo.AddItem( "MultipleCalendarYears", halfyear.MultipleCalendarYears );
             periodInfo.AddItem( "HalfyearName", halfyear.HalfyearName );
             periodInfo.AddItem( "HalfyearOfYearName", halfyear.HalfyearOfYearName );
             periodInfo.AddItem( "LastDayStart", halfyear.LastDayStart );
             periodInfo.AddItem( "LastMonthStart", halfyear.LastMonthStart );
             periodInfo.AddSection( "Previous/Next" );
             periodInfo.AddItem( "Previousr", halfyear.GetPreviousHalfyear() );
             periodInfo.AddItem( "Next", halfyear.GetNextHalfyear() );
             periodInfo.AddSubitems( "Quarters", halfyear.GetQuarters() );
             periodInfo.AddSubitems( "Months", halfyear.GetMonths() );
             SelectedPeriodInfo = periodInfo.ToString();
             break;
         case TimePeriodMode.Quarter:
             Quarter quarter = new Quarter( WorkingDate, timeCalendar );
             periodInfo.Clear();
             periodInfo.AddItem( "Quarter", quarter );
             periodInfo.AddItem( "YearBaseMonth", quarter.YearBaseMonth );
             periodInfo.AddItem( "StartMonth", quarter.StartMonth );
             periodInfo.AddItem( "Year", quarter.Year );
             periodInfo.AddItem( "YearQuarter", quarter.YearQuarter );
             periodInfo.AddItem( "IsCalendarQuarter", quarter.IsCalendarQuarter );
             periodInfo.AddItem( "MultipleCalendarYears", quarter.MultipleCalendarYears );
             periodInfo.AddItem( "QuarterName", quarter.QuarterName );
             periodInfo.AddItem( "QuarterOfYearName", quarter.QuarterOfYearName );
             periodInfo.AddItem( "LastDayStart", quarter.FirstDayStart );
             periodInfo.AddItem( "LastMonthStart", quarter.LastDayStart );
             periodInfo.AddSection( "Previous/Next" );
             periodInfo.AddItem( "Previous", quarter.GetPreviousQuarter() );
             periodInfo.AddItem( "Next", quarter.GetNextQuarter() );
             periodInfo.AddSubitems( "Months", quarter.GetMonths() );
             SelectedPeriodInfo = periodInfo.ToString();
             break;
         case TimePeriodMode.Month:
             Month month = new Month( WorkingDate, timeCalendar );
             periodInfo.Clear();
             periodInfo.AddItem( "Month", month );
             periodInfo.AddItem( "YearBaseMonth", month.YearMonth );
             periodInfo.AddItem( "Year", month.Year );
             periodInfo.AddItem( "DaysInMonth", month.DaysInMonth );
             periodInfo.AddItem( "MonthName", month.MonthName );
             periodInfo.AddItem( "MonthOfYearName", month.MonthOfYearName );
             periodInfo.AddItem( "LastDayStart", month.FirstDayStart );
             periodInfo.AddItem( "LastMonthStart", month.LastDayStart );
             periodInfo.AddSection( "Previous/Next" );
             periodInfo.AddItem( "Previous", month.GetPreviousMonth() );
             periodInfo.AddItem( "Next", month.GetNextMonth() );
             periodInfo.AddSubitems( "Days", month.GetDays() );
             SelectedPeriodInfo = periodInfo.ToString();
             break;
         case TimePeriodMode.Week:
             Week week = new Week( WorkingDate, timeCalendar );
             periodInfo.Clear();
             periodInfo.AddItem( "Week", week );
             periodInfo.AddItem( "MultipleCalendarYears", week.MultipleCalendarYears );
             periodInfo.AddItem( "FirstDayStart", week.FirstDayStart );
             periodInfo.AddItem( "FirstDayOfWeek", week.FirstDayOfWeek );
             periodInfo.AddItem( "LastDayStart", week.LastDayStart );
             periodInfo.AddItem( "LastDayOfWeek", week.LastDayOfWeek );
             periodInfo.AddItem( "WeekOfYear", week.WeekOfYear );
             periodInfo.AddItem( "WeekOfYearName", week.WeekOfYearName );
             periodInfo.AddSection( "Previous/Next" );
             periodInfo.AddItem( "Previous", week.GetPreviousWeek() );
             periodInfo.AddItem( "Next", week.GetNextWeek() );
             periodInfo.AddSubitems( "Days", week.GetDays() );
             SelectedPeriodInfo = periodInfo.ToString();
             break;
         case TimePeriodMode.Day:
             Day day = new Day( WorkingDate, timeCalendar );
             periodInfo.Clear();
             periodInfo.AddItem( "Day", day );
             periodInfo.AddItem( "Year", day.Year );
             periodInfo.AddItem( "FirstDayStart", day.FirstDayStart );
             periodInfo.AddItem( "Month", day.Month );
             periodInfo.AddItem( "DayValue", day.DayValue );
             periodInfo.AddItem( "DayOfWeek", day.DayOfWeek );
             periodInfo.AddItem( "DayName", day.DayName );
             periodInfo.AddItem( "FirstHourStart", day.FirstHourStart );
             periodInfo.AddItem( "LastHourStart", day.LastHourStart );
             periodInfo.AddSection( "Previous/Next" );
             periodInfo.AddItem( "Previous", day.GetPreviousDay() );
             periodInfo.AddItem( "Next", day.GetNextDay() );
             periodInfo.AddSubitems( "Hours", day.GetHours() );
             SelectedPeriodInfo = periodInfo.ToString();
             break;
         case TimePeriodMode.Hour:
             Hour hour = new Hour( WorkingDate, timeCalendar );
             periodInfo.Clear();
             periodInfo.AddItem( "Hour", hour );
             periodInfo.AddItem( "Year", hour.Year );
             periodInfo.AddItem( "Month", hour.Month );
             periodInfo.AddItem( "Day", hour.Day );
             periodInfo.AddItem( "HourValue", hour.HourValue );
             periodInfo.AddItem( "FirstMinuteStart", hour.FirstMinuteStart );
             periodInfo.AddItem( "LastMinuteStart", hour.LastMinuteStart );
             periodInfo.AddSection( "Previous/Next" );
             periodInfo.AddItem( "Previous", hour.GetPreviousHour() );
             periodInfo.AddItem( "Next", hour.GetNextHour() );
             periodInfo.AddSubitems( "Minutes", hour.GetMinutes() );
             SelectedPeriodInfo = periodInfo.ToString();
             break;
         case TimePeriodMode.Minute:
             Minute minute = new Minute( WorkingDate, timeCalendar );
             periodInfo.Clear();
             periodInfo.AddItem( "Minute", minute );
             periodInfo.AddItem( "Year", minute.Year );
             periodInfo.AddItem( "Month", minute.Month );
             periodInfo.AddItem( "Day", minute.Day );
             periodInfo.AddItem( "Hour", minute.Hour );
             periodInfo.AddItem( "MinuteValue", minute.MinuteValue );
             periodInfo.AddSection( "Previous/Next" );
             periodInfo.AddItem( "Previous", minute.GetPreviousMinute() );
             periodInfo.AddItem( "Next", minute.GetNextMinute() );
             SelectedPeriodInfo = periodInfo.ToString();
             break;
     }
 }
        }         // NotifyPropertyChanged

        // ----------------------------------------------------------------------
        private void UpdateSelectedPeriodInfo()
        {
            TimeCalendar timeCalendar = TimeCalendar.New(SelectedYearBaseMonth);

            switch (SelectedPeriodMode)
            {
            case TimePeriodMode.Year:
                Year year = new Year(WorkingDate, timeCalendar);
                periodInfo.Clear();
                periodInfo.AddItem("Year", year);
                periodInfo.AddItem("YearBaseMonth", year.YearBaseMonth);
                periodInfo.AddItem("IsCalendarYear", year.IsCalendarYear);
                periodInfo.AddItem("StartYear", year.StartYear);
                periodInfo.AddItem("FirstDayStart", year.FirstDayStart);
                periodInfo.AddItem("LastDayStart", year.LastDayStart);
                periodInfo.AddItem("LastMonthStart", year.LastMonthStart);
                periodInfo.AddItem("YearName", year.YearName);
                periodInfo.AddSection("Previous/Next");
                periodInfo.AddItem("Previous", year.GetPreviousYear());
                periodInfo.AddItem("Next", year.GetNextYear());
                periodInfo.AddSubitems("Halfyears", year.GetHalfyears());
                periodInfo.AddSubitems("Quarters", year.GetQuarters());
                periodInfo.AddSubitems("Months", year.GetMonths());
                SelectedPeriodInfo = periodInfo.ToString();
                break;

            case TimePeriodMode.Halfyear:
                Halfyear halfyear = new Halfyear(WorkingDate, timeCalendar);
                periodInfo.Clear();
                periodInfo.AddItem("Halfyear", halfyear);
                periodInfo.AddItem("YearBaseMonth", halfyear.YearBaseMonth);
                periodInfo.AddItem("StartMonth", halfyear.StartMonth);
                periodInfo.AddItem("Year", halfyear.Year);
                periodInfo.AddItem("YearHalfyear", halfyear.YearHalfyear);
                periodInfo.AddItem("IsCalendarHalfyear", halfyear.IsCalendarHalfyear);
                periodInfo.AddItem("MultipleCalendarYears", halfyear.MultipleCalendarYears);
                periodInfo.AddItem("HalfyearName", halfyear.HalfyearName);
                periodInfo.AddItem("HalfyearOfYearName", halfyear.HalfyearOfYearName);
                periodInfo.AddItem("LastDayStart", halfyear.LastDayStart);
                periodInfo.AddItem("LastMonthStart", halfyear.LastMonthStart);
                periodInfo.AddSection("Previous/Next");
                periodInfo.AddItem("Previousr", halfyear.GetPreviousHalfyear());
                periodInfo.AddItem("Next", halfyear.GetNextHalfyear());
                periodInfo.AddSubitems("Quarters", halfyear.GetQuarters());
                periodInfo.AddSubitems("Months", halfyear.GetMonths());
                SelectedPeriodInfo = periodInfo.ToString();
                break;

            case TimePeriodMode.Quarter:
                Quarter quarter = new Quarter(WorkingDate, timeCalendar);
                periodInfo.Clear();
                periodInfo.AddItem("Quarter", quarter);
                periodInfo.AddItem("YearBaseMonth", quarter.YearBaseMonth);
                periodInfo.AddItem("StartMonth", quarter.StartMonth);
                periodInfo.AddItem("Year", quarter.Year);
                periodInfo.AddItem("YearQuarter", quarter.YearQuarter);
                periodInfo.AddItem("IsCalendarQuarter", quarter.IsCalendarQuarter);
                periodInfo.AddItem("MultipleCalendarYears", quarter.MultipleCalendarYears);
                periodInfo.AddItem("QuarterName", quarter.QuarterName);
                periodInfo.AddItem("QuarterOfYearName", quarter.QuarterOfYearName);
                periodInfo.AddItem("LastDayStart", quarter.FirstDayStart);
                periodInfo.AddItem("LastMonthStart", quarter.LastDayStart);
                periodInfo.AddSection("Previous/Next");
                periodInfo.AddItem("Previous", quarter.GetPreviousQuarter());
                periodInfo.AddItem("Next", quarter.GetNextQuarter());
                periodInfo.AddSubitems("Months", quarter.GetMonths());
                SelectedPeriodInfo = periodInfo.ToString();
                break;

            case TimePeriodMode.Month:
                Month month = new Month(WorkingDate, timeCalendar);
                periodInfo.Clear();
                periodInfo.AddItem("Month", month);
                periodInfo.AddItem("YearBaseMonth", month.YearMonth);
                periodInfo.AddItem("Year", month.Year);
                periodInfo.AddItem("DaysInMonth", month.DaysInMonth);
                periodInfo.AddItem("MonthName", month.MonthName);
                periodInfo.AddItem("MonthOfYearName", month.MonthOfYearName);
                periodInfo.AddItem("LastDayStart", month.FirstDayStart);
                periodInfo.AddItem("LastMonthStart", month.LastDayStart);
                periodInfo.AddSection("Previous/Next");
                periodInfo.AddItem("Previous", month.GetPreviousMonth());
                periodInfo.AddItem("Next", month.GetNextMonth());
                periodInfo.AddSubitems("Days", month.GetDays());
                SelectedPeriodInfo = periodInfo.ToString();
                break;

            case TimePeriodMode.Week:
                Week week = new Week(WorkingDate, timeCalendar);
                periodInfo.Clear();
                periodInfo.AddItem("Week", week);
                periodInfo.AddItem("MultipleCalendarYears", week.MultipleCalendarYears);
                periodInfo.AddItem("FirstDayStart", week.FirstDayStart);
                periodInfo.AddItem("FirstDayOfWeek", week.FirstDayOfWeek);
                periodInfo.AddItem("LastDayStart", week.LastDayStart);
                periodInfo.AddItem("LastDayOfWeek", week.LastDayOfWeek);
                periodInfo.AddItem("WeekOfYear", week.WeekOfYear);
                periodInfo.AddItem("WeekOfYearName", week.WeekOfYearName);
                periodInfo.AddSection("Previous/Next");
                periodInfo.AddItem("Previous", week.GetPreviousWeek());
                periodInfo.AddItem("Next", week.GetNextWeek());
                periodInfo.AddSubitems("Days", week.GetDays());
                SelectedPeriodInfo = periodInfo.ToString();
                break;

            case TimePeriodMode.Day:
                Day day = new Day(WorkingDate, timeCalendar);
                periodInfo.Clear();
                periodInfo.AddItem("Day", day);
                periodInfo.AddItem("Year", day.Year);
                periodInfo.AddItem("FirstDayStart", day.FirstDayStart);
                periodInfo.AddItem("Month", day.Month);
                periodInfo.AddItem("DayValue", day.DayValue);
                periodInfo.AddItem("DayOfWeek", day.DayOfWeek);
                periodInfo.AddItem("DayName", day.DayName);
                periodInfo.AddItem("FirstHourStart", day.FirstHourStart);
                periodInfo.AddItem("LastHourStart", day.LastHourStart);
                periodInfo.AddSection("Previous/Next");
                periodInfo.AddItem("Previous", day.GetPreviousDay());
                periodInfo.AddItem("Next", day.GetNextDay());
                periodInfo.AddSubitems("Hours", day.GetHours());
                SelectedPeriodInfo = periodInfo.ToString();
                break;

            case TimePeriodMode.Hour:
                Hour hour = new Hour(WorkingDate, timeCalendar);
                periodInfo.Clear();
                periodInfo.AddItem("Hour", hour);
                periodInfo.AddItem("Year", hour.Year);
                periodInfo.AddItem("Month", hour.Month);
                periodInfo.AddItem("Day", hour.Day);
                periodInfo.AddItem("HourValue", hour.HourValue);
                periodInfo.AddItem("FirstMinuteStart", hour.FirstMinuteStart);
                periodInfo.AddItem("LastMinuteStart", hour.LastMinuteStart);
                periodInfo.AddSection("Previous/Next");
                periodInfo.AddItem("Previous", hour.GetPreviousHour());
                periodInfo.AddItem("Next", hour.GetNextHour());
                periodInfo.AddSubitems("Minutes", hour.GetMinutes());
                SelectedPeriodInfo = periodInfo.ToString();
                break;

            case TimePeriodMode.Minute:
                Minute minute = new Minute(WorkingDate, timeCalendar);
                periodInfo.Clear();
                periodInfo.AddItem("Minute", minute);
                periodInfo.AddItem("Year", minute.Year);
                periodInfo.AddItem("Month", minute.Month);
                periodInfo.AddItem("Day", minute.Day);
                periodInfo.AddItem("Hour", minute.Hour);
                periodInfo.AddItem("MinuteValue", minute.MinuteValue);
                periodInfo.AddSection("Previous/Next");
                periodInfo.AddItem("Previous", minute.GetPreviousMinute());
                periodInfo.AddItem("Next", minute.GetNextMinute());
                SelectedPeriodInfo = periodInfo.ToString();
                break;
            }
        }         // UpdateSelectedPeriodInfo