Exemplo n.º 1
0
        public void FiscalYearGetMonthsTest()
        {
            Halfyear halfyear            = new Halfyear(2006, YearHalfyear.First, GetFiscalYearCalendar(FiscalYearAlignment.LastDay));
            ITimePeriodCollection months = halfyear.GetMonths();

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

            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.MonthsPerHalfyear - 1].End, halfyear.End);
        } // FiscalYearGetMonthsTest
Exemplo n.º 2
0
        public void GetMonthsTest()
        {
            int          currentYear  = ClockProxy.Clock.Now.Year;
            TimeCalendar timeCalendar = TimeCalendar.New(YearMonth.October);
            Halfyear     halfyear     = new Halfyear(currentYear, YearHalfyear.First, timeCalendar);

            ITimePeriodCollection months = halfyear.GetMonths();

            Assert.NotNull(months);

            int index = 0;

            foreach (Month month in months)
            {
                Assert.Equal(month.Start, halfyear.Start.AddMonths(index));
                Assert.Equal(month.End, month.Calendar.MapEnd(month.Start.AddMonths(1)));
                index++;
            }
            Assert.Equal(index, TimeSpec.MonthsPerHalfyear);
        }         // GetMonthsTest
        }         // 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