public void GetFiscalQuartersTest() { Halfyear halfyear = new Halfyear(2006, YearHalfyear.First, GetFiscalYearCalendar(FiscalYearAlignment.LastDay)); ITimePeriodCollection quarters = halfyear.GetQuarters(); Assert.NotNull(quarters); Assert.Equal(quarters.Count, TimeSpec.QuartersPerHalfyear); Assert.Equal(quarters[0].Start.Date, halfyear.Start); Assert.Equal(quarters[TimeSpec.QuartersPerHalfyear - 1].End, halfyear.End); } // GetFiscalQuartersTest
public void GetQuartersTest() { int currentYear = ClockProxy.Clock.Now.Year; TimeCalendar timeCalendar = TimeCalendar.New(YearMonth.October); Halfyear h1 = new Halfyear(currentYear, YearHalfyear.First, timeCalendar); ITimePeriodCollection h1Quarters = h1.GetQuarters(); Assert.NotNull(h1Quarters); int h1Index = 0; foreach (Quarter h1Quarter in h1Quarters) { Assert.Equal(h1Quarter.BaseYear, h1.BaseYear); Assert.Equal(h1Quarter.YearQuarter, h1Index == 0 ? YearQuarter.First : YearQuarter.Second); Assert.Equal(h1Quarter.Start, h1.Start.AddMonths(h1Index * TimeSpec.MonthsPerQuarter)); Assert.Equal(h1Quarter.End, h1Quarter.Calendar.MapEnd(h1Quarter.Start.AddMonths(TimeSpec.MonthsPerQuarter))); h1Index++; } Assert.Equal(h1Index, TimeSpec.QuartersPerHalfyear); Halfyear h2 = new Halfyear(currentYear, YearHalfyear.Second, timeCalendar); ITimePeriodCollection h2Quarters = h2.GetQuarters(); Assert.NotNull(h2Quarters); int h2Index = 0; foreach (Quarter h2Quarter in h2Quarters) { Assert.Equal(h2Quarter.BaseYear, h2.BaseYear); Assert.Equal(h2Quarter.YearQuarter, h2Index == 0 ? YearQuarter.Third : YearQuarter.Fourth); Assert.Equal(h2Quarter.Start, h2.Start.AddMonths(h2Index * TimeSpec.MonthsPerQuarter)); Assert.Equal(h2Quarter.End, h2Quarter.Calendar.MapEnd(h2Quarter.Start.AddMonths(TimeSpec.MonthsPerQuarter))); h2Index++; } Assert.Equal(h2Index, TimeSpec.QuartersPerHalfyear); } // GetQuartersTest
} // 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