Пример #1
0
        public void FiscalYearGetMonthsTest()
        {
            const int             halfyearCount = 4;
            Halfyears             halfyears     = new Halfyears(2006, YearHalfyear.First, halfyearCount, GetFiscalYearCalendar(FiscalYearAlignment.LastDay));
            ITimePeriodCollection months        = halfyears.GetMonths();

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

            Assert.Equal <DateTime>(months[0].Start, new DateTime(2006, 8, 27));
            for (int i = 0; i < months.Count; i++)
            {
                Month month = (Month)months[i];

                // last month of a leap year (6 weeks)
                // http://en.wikipedia.org/wiki/4-4-5_Calendar
                if ((month.YearMonth == YearMonth.August) && (month.Year == 2008 || month.Year == 2013 || month.Year == 2019))
                {
                    Assert.Equal(month.Duration.Subtract(TimeCalendar.DefaultEndOffset).Days, TimeSpec.FiscalDaysPerLeapMonth);
                }
                else if ((i + 1) % 3 == 0)                     // first and second month of quarter (4 weeks)
                {
                    Assert.Equal(month.Duration.Subtract(TimeCalendar.DefaultEndOffset).Days, TimeSpec.FiscalDaysPerLongMonth);
                }
                else                 // third month of quarter (5 weeks)
                {
                    Assert.Equal(month.Duration.Subtract(TimeCalendar.DefaultEndOffset).Days, TimeSpec.FiscalDaysPerShortMonth);
                }
            }
            Assert.Equal(months[(TimeSpec.MonthsPerHalfyear * halfyearCount) - 1].End, halfyears.End);
        }         // FiscalYearGetMonthsTest
Пример #2
0
        public void SecondHalfyearQuarterTest()
        {
            Halfyears halfyears = new Halfyears(2016, YearHalfyear.Second, 1);

            Assert.Equal(2, halfyears.GetQuarters().Count);
            Assert.Equal(7, halfyears.GetQuarters()[0].Start.Month);
            Assert.Equal(10, halfyears.GetQuarters()[1].Start.Month);
        } // SecondHalfyearQuarterTest
Пример #3
0
        public void FirstHalfyearQuarterTest()
        {
            Halfyears halfyears = new Halfyears(2016, YearHalfyear.First, 1);

            Assert.Equal(2, halfyears.GetQuarters().Count);
            Assert.Equal(1, halfyears.GetQuarters()[0].Start.Month);
            Assert.Equal(4, halfyears.GetQuarters()[1].Start.Month);
        } // FirstHalfyearQuarterTest
Пример #4
0
        public void SecondHalfyearMonthTest()
        {
            Halfyears halfyears = new Halfyears(2016, YearHalfyear.Second, 1);

            Assert.Equal(6, halfyears.GetMonths().Count);
            Assert.Equal(7, halfyears.GetMonths()[0].Start.Month);
            Assert.Equal(12, halfyears.GetMonths()[5].Start.Month);
        } // SecondHalfyearMonthTest
Пример #5
0
        public void FirstHalfyearMonthTest()
        {
            Halfyears halfyears = new Halfyears(2016, YearHalfyear.First, 1);

            Assert.Equal(6, halfyears.GetMonths().Count);
            Assert.Equal(1, halfyears.GetMonths()[0].Start.Month);
            Assert.Equal(6, halfyears.GetMonths()[5].Start.Month);
        } // FirstHalfyearMonthTest
Пример #6
0
        public void YearBaseMonthTest()
        {
            DateTime  moment    = new DateTime(2009, 2, 15);
            int       year      = TimeTool.GetYearOf(YearMonth.April, moment.Year, moment.Month);
            Halfyears halfyears = new Halfyears(moment, YearHalfyear.First, 3, TimeCalendar.New(YearMonth.April));

            Assert.Equal(YearMonth.April, halfyears.YearBaseMonth);
            Assert.Equal <DateTime>(halfyears.Start, new DateTime(year, (int)YearMonth.April, 1));
        }         // YearBaseMonthTest
Пример #7
0
        public void GetFiscalQuartersTest()
        {
            const int             halfyearCount = 4;
            Halfyears             halfyears     = new Halfyears(2006, YearHalfyear.First, halfyearCount, GetFiscalYearCalendar(FiscalYearAlignment.LastDay));
            ITimePeriodCollection quarters      = halfyears.GetQuarters();

            Assert.NotNull(quarters);
            Assert.Equal(quarters.Count, TimeSpec.QuartersPerHalfyear * halfyearCount);

            Assert.Equal(quarters[0].Start.Date, halfyears.Start);
            Assert.Equal(quarters[(TimeSpec.QuartersPerHalfyear * halfyearCount) - 1].End, halfyears.End);
        }         // GetFiscalQuartersTest
        }         // ShowCompactHalfyears

        // ----------------------------------------------------------------------
        public static void ShowHalfyears(Halfyears halfyears, string caption = "Halfyears")
        {
            WriteLine("{0}: {1}", caption, halfyears);
            WriteIndentLine("YearBaseMonth: {0}", halfyears.YearBaseMonth);
            WriteIndentLine("StartYear: {0}", halfyears.StartYear);
            WriteIndentLine("StartHalfyear: {0}", halfyears.StartHalfyear);
            WriteIndentLine("StartHalfyearName: {0}", halfyears.StartHalfyearName);
            WriteIndentLine("StartHalfyearOfYearName: {0}", halfyears.StartHalfyearOfYearName);
            WriteIndentLine("EndYear: {0}", halfyears.EndYear);
            WriteIndentLine("EndHalfyear: {0}", halfyears.EndHalfyear);
            WriteIndentLine("EndHalfyearName: {0}", halfyears.EndHalfyearName);
            WriteIndentLine("EndHalfyearOfYearName: {0}", halfyears.EndHalfyearOfYearName);
            WriteLine();
        } // ShowHalfyears
Пример #9
0
        public void SingleHalfyearsTest()
        {
            const int          startYear     = 2004;
            const YearHalfyear startHalfyear = YearHalfyear.Second;
            Halfyears          halfyears     = new Halfyears(startYear, startHalfyear, 1);

            Assert.Equal(YearMonth.January, halfyears.YearBaseMonth);
            Assert.Equal(1, halfyears.HalfyearCount);
            Assert.Equal(halfyears.StartHalfyear, startHalfyear);
            Assert.Equal <int>(halfyears.StartYear, startYear);
            Assert.Equal <int>(halfyears.EndYear, startYear);
            Assert.Equal(YearHalfyear.Second, halfyears.EndHalfyear);
            Assert.Equal(1, halfyears.GetHalfyears().Count);
            Assert.True(halfyears.GetHalfyears()[0].IsSamePeriod(new Halfyear(2004, YearHalfyear.Second)));
        }         // SingleHalfyearsTest
        // ----------------------------------------------------------------------
        public static void ShowAll(int periodCount, int startYear, YearHalfyear yearHalfyear, TimeCalendarConfig calendarConfig)
        {
            WriteLine("Input: count={0}, year={1}, halfyear={2}", periodCount, startYear, yearHalfyear);
            WriteLine();

            HalfyearTimeRange halfyearTimeRange;

            if (periodCount == 1)
            {
                Halfyear halfyear = new Halfyear(startYear, yearHalfyear, new TimeCalendar(calendarConfig));
                halfyearTimeRange = halfyear;

                Halfyear previousHalfyear = halfyear.GetPreviousHalfyear();
                Halfyear nextHalfyear     = halfyear.GetNextHalfyear();

                ShowHalfyear(halfyear);
                ShowCompactHalfyear(previousHalfyear, "Previous Halfyear");
                ShowCompactHalfyear(nextHalfyear, "Next Halfyear");
                WriteLine();
            }
            else
            {
                Halfyears halfyears = new Halfyears(startYear, yearHalfyear, periodCount, new TimeCalendar(calendarConfig));
                halfyearTimeRange = halfyears;

                ShowHalfyears(halfyears);
                WriteLine();

                foreach (Halfyear halfyear in halfyears.GetHalfyears())
                {
                    ShowCompactHalfyear(halfyear);
                }
                WriteLine();
            }

            foreach (Quarter quarter in halfyearTimeRange.GetQuarters())
            {
                QuarterDemo.ShowCompactQuarter(quarter);
            }
            WriteLine();
            foreach (Month month in halfyearTimeRange.GetMonths())
            {
                MonthDemo.ShowCompactMonth(month);
            }
            WriteLine();
        }         // ShowAll
Пример #11
0
        public void SecondCalendarHalfyearsTest()
        {
            const int          startYear     = 2004;
            const YearHalfyear startHalfyear = YearHalfyear.Second;
            const int          halfyearCount = 3;
            Halfyears          halfyears     = new Halfyears(startYear, startHalfyear, halfyearCount);

            Assert.Equal(YearMonth.January, halfyears.YearBaseMonth);
            Assert.Equal <int>(halfyears.HalfyearCount, halfyearCount);
            Assert.Equal(halfyears.StartHalfyear, startHalfyear);
            Assert.Equal <int>(halfyears.StartYear, startYear);
            Assert.Equal(2005, halfyears.EndYear);
            Assert.Equal(YearHalfyear.Second, halfyears.EndHalfyear);
            Assert.Equal(halfyears.GetHalfyears().Count, halfyearCount);
            Assert.True(halfyears.GetHalfyears()[0].IsSamePeriod(new Halfyear(2004, YearHalfyear.Second)));
            Assert.True(halfyears.GetHalfyears()[1].IsSamePeriod(new Halfyear(2005, YearHalfyear.First)));
            Assert.True(halfyears.GetHalfyears()[2].IsSamePeriod(new Halfyear(2005, YearHalfyear.Second)));
        }         // SecondCalendarHalfyearsTest
Пример #12
0
        public void FirstCalendarHalfyearsTest()
        {
            const int          startYear     = 2004;
            const YearHalfyear startHalfyear = YearHalfyear.First;
            const int          halfyearCount = 3;
            Halfyears          halfyears     = new Halfyears(startYear, startHalfyear, halfyearCount);

            Assert.AreEqual(halfyears.YearBaseMonth, YearMonth.January);
            Assert.AreEqual(halfyears.HalfyearCount, halfyearCount);
            Assert.AreEqual(halfyears.StartHalfyear, startHalfyear);
            Assert.AreEqual(halfyears.StartYear, startYear);
            Assert.AreEqual(halfyears.EndYear, 2005);
            Assert.AreEqual(halfyears.EndHalfyear, YearHalfyear.First);
            Assert.AreEqual(halfyears.GetHalfyears().Count, halfyearCount);
            Assert.IsTrue(halfyears.GetHalfyears()[0].IsSamePeriod(new Halfyear(2004, YearHalfyear.First)));
            Assert.IsTrue(halfyears.GetHalfyears()[1].IsSamePeriod(new Halfyear(2004, YearHalfyear.Second)));
            Assert.IsTrue(halfyears.GetHalfyears()[2].IsSamePeriod(new Halfyear(2005, YearHalfyear.First)));
        }         // FirstCalendarHalfyearsTest
Пример #13
0
        public void FirstCustomCalendarHalfyearsTest()
        {
            TimeCalendar       calendar      = TimeCalendar.New(YearMonth.October);
            const int          startYear     = 2004;
            const YearHalfyear startHalfyear = YearHalfyear.First;
            const int          halfyearCount = 3;
            Halfyears          halfyears     = new Halfyears(startYear, startHalfyear, halfyearCount, calendar);

            Assert.Equal(YearMonth.October, halfyears.YearBaseMonth);
            Assert.Equal <int>(halfyears.HalfyearCount, halfyearCount);
            Assert.Equal(halfyears.StartHalfyear, startHalfyear);
            Assert.Equal <int>(halfyears.StartYear, startYear);
            Assert.Equal(2005, halfyears.EndYear);
            Assert.Equal(YearHalfyear.First, halfyears.EndHalfyear);
            Assert.Equal(halfyears.GetHalfyears().Count, halfyearCount);
            Assert.True(halfyears.GetHalfyears()[0].IsSamePeriod(new Halfyear(2004, YearHalfyear.First, calendar)));
            Assert.True(halfyears.GetHalfyears()[1].IsSamePeriod(new Halfyear(2004, YearHalfyear.Second, calendar)));
            Assert.True(halfyears.GetHalfyears()[2].IsSamePeriod(new Halfyear(2005, YearHalfyear.First, calendar)));
        }         // FirstCustomCalendarHalfyearsTest
        }         // ShowHalfyear

        // ----------------------------------------------------------------------
        public static void ShowCompactHalfyears(Halfyears halfyears, string caption = "Halfyears")
        {
            WriteLine("{0}: {1}", caption, halfyears);
        }         // ShowCompactHalfyears