Ejemplo n.º 1
0
        protected QuarterTimeRange(int startYear, QuarterKind startQuarter, int quarterCount, ITimeCalendar calendar)
            : base(GetPeriodOf(calendar, startYear, startQuarter.GetHashCode(), quarterCount), calendar)
        {
            StartYear = startYear;

            StartQuarter = startQuarter;
            QuarterCount = quarterCount;

            var endYearQuarter = TimeTool.AddQuarter(startQuarter, startYear, quarterCount - 1);

            EndYear    = endYearQuarter.Year ?? StartYear;
            EndQuarter = endYearQuarter.Quarter ?? StartQuarter;
        }
Ejemplo n.º 2
0
        public IEnumerable <QuarterRange> GetQuarters()
        {
            var startYear    = StartYear;
            var startQuarter = StartQuarter;

            return
                (Enumerable
                 .Range(0, QuarterCount)
#if !SILVERLIGHT
                 .AsParallel()
                 .AsOrdered()
#endif
                 .Select(q => {
                var yq = TimeTool.AddQuarter(startQuarter, startYear, q);
                return new QuarterRange(yq.Year ?? 0, yq.Quarter ?? QuarterKind.First, TimeCalendar);
            }));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 현 분기에서 <paramref name="count"/> 수만큼 분기를 더한다.
        /// </summary>
        /// <param name="count"></param>
        /// <returns></returns>
        public QuarterRange AddQuarters(int count)
        {
            var yearQuarter = TimeTool.AddQuarter(StartQuarter, StartYear, count);

            return(new QuarterRange(yearQuarter.Year ?? 0, yearQuarter.Quarter ?? QuarterKind.First, TimeCalendar));
        }
Ejemplo n.º 4
0
        public void AddQuarterTest()
        {
            int         year;
            YearQuarter quarter;

            TimeTool.AddQuarter(YearQuarter.First, 1, out year, out quarter);
            Assert.Equal(YearQuarter.Second, quarter);
            TimeTool.AddQuarter(YearQuarter.Second, 1, out year, out quarter);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(YearQuarter.Third, 1, out year, out quarter);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(YearQuarter.Fourth, 1, out year, out quarter);
            Assert.Equal(YearQuarter.First, quarter);

            TimeTool.AddQuarter(YearQuarter.First, -1, out year, out quarter);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(YearQuarter.Second, -1, out year, out quarter);
            Assert.Equal(YearQuarter.First, quarter);
            TimeTool.AddQuarter(YearQuarter.Third, -1, out year, out quarter);
            Assert.Equal(YearQuarter.Second, quarter);
            TimeTool.AddQuarter(YearQuarter.Fourth, -1, out year, out quarter);
            Assert.Equal(YearQuarter.Third, quarter);

            TimeTool.AddQuarter(YearQuarter.First, 2, out year, out quarter);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(YearQuarter.Second, 2, out year, out quarter);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(YearQuarter.Third, 2, out year, out quarter);
            Assert.Equal(YearQuarter.First, quarter);
            TimeTool.AddQuarter(YearQuarter.Fourth, 2, out year, out quarter);
            Assert.Equal(YearQuarter.Second, quarter);

            TimeTool.AddQuarter(YearQuarter.First, -2, out year, out quarter);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(YearQuarter.Second, -2, out year, out quarter);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(YearQuarter.Third, -2, out year, out quarter);
            Assert.Equal(YearQuarter.First, quarter);
            TimeTool.AddQuarter(YearQuarter.Fourth, -2, out year, out quarter);
            Assert.Equal(YearQuarter.Second, quarter);

            TimeTool.AddQuarter(YearQuarter.First, 3, out year, out quarter);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(YearQuarter.Second, 3, out year, out quarter);
            Assert.Equal(YearQuarter.First, quarter);
            TimeTool.AddQuarter(YearQuarter.Third, 3, out year, out quarter);
            Assert.Equal(YearQuarter.Second, quarter);
            TimeTool.AddQuarter(YearQuarter.Fourth, 3, out year, out quarter);
            Assert.Equal(YearQuarter.Third, quarter);

            TimeTool.AddQuarter(YearQuarter.First, -3, out year, out quarter);
            Assert.Equal(YearQuarter.Second, quarter);
            TimeTool.AddQuarter(YearQuarter.Second, -3, out year, out quarter);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(YearQuarter.Third, -3, out year, out quarter);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(YearQuarter.Fourth, -3, out year, out quarter);
            Assert.Equal(YearQuarter.First, quarter);

            TimeTool.AddQuarter(YearQuarter.First, 4, out year, out quarter);
            Assert.Equal(YearQuarter.First, quarter);
            TimeTool.AddQuarter(YearQuarter.Second, 4, out year, out quarter);
            Assert.Equal(YearQuarter.Second, quarter);
            TimeTool.AddQuarter(YearQuarter.Third, 4, out year, out quarter);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(YearQuarter.Fourth, 4, out year, out quarter);
            Assert.Equal(YearQuarter.Fourth, quarter);

            TimeTool.AddQuarter(YearQuarter.First, -4, out year, out quarter);
            Assert.Equal(YearQuarter.First, quarter);
            TimeTool.AddQuarter(YearQuarter.Second, -4, out year, out quarter);
            Assert.Equal(YearQuarter.Second, quarter);
            TimeTool.AddQuarter(YearQuarter.Third, -4, out year, out quarter);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(YearQuarter.Fourth, -4, out year, out quarter);
            Assert.Equal(YearQuarter.Fourth, quarter);

            TimeTool.AddQuarter(2008, YearQuarter.First, 1, out year, out quarter);
            Assert.Equal(2008, year);
            Assert.Equal(YearQuarter.Second, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Second, 1, out year, out quarter);
            Assert.Equal(2008, year);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Third, 1, out year, out quarter);
            Assert.Equal(2008, year);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Fourth, 1, out year, out quarter);
            Assert.Equal(2009, year);
            Assert.Equal(YearQuarter.First, quarter);

            TimeTool.AddQuarter(2008, YearQuarter.First, 2, out year, out quarter);
            Assert.Equal(2008, year);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Second, 2, out year, out quarter);
            Assert.Equal(2008, year);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Third, 2, out year, out quarter);
            Assert.Equal(2009, year);
            Assert.Equal(YearQuarter.First, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Fourth, 2, out year, out quarter);
            Assert.Equal(2009, year);
            Assert.Equal(YearQuarter.Second, quarter);

            TimeTool.AddQuarter(2008, YearQuarter.First, 5, out year, out quarter);
            Assert.Equal(2009, year);
            Assert.Equal(YearQuarter.Second, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Second, 5, out year, out quarter);
            Assert.Equal(2009, year);
            Assert.Equal(YearQuarter.Third, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Third, 5, out year, out quarter);
            Assert.Equal(2009, year);
            Assert.Equal(YearQuarter.Fourth, quarter);
            TimeTool.AddQuarter(2008, YearQuarter.Fourth, 5, out year, out quarter);
            Assert.Equal(2010, year);
            Assert.Equal(YearQuarter.First, quarter);
        }         // AddQuarterTest
Ejemplo n.º 5
0
        public void AddQuarterTest()
        {
            int         year;
            YearQuarter quarter;

            TimeTool.AddQuarter(YearQuarter.First, 1, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Second);
            TimeTool.AddQuarter(YearQuarter.Second, 1, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(YearQuarter.Third, 1, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(YearQuarter.Fourth, 1, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.First);

            TimeTool.AddQuarter(YearQuarter.First, -1, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(YearQuarter.Second, -1, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.First);
            TimeTool.AddQuarter(YearQuarter.Third, -1, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Second);
            TimeTool.AddQuarter(YearQuarter.Fourth, -1, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Third);

            TimeTool.AddQuarter(YearQuarter.First, 2, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(YearQuarter.Second, 2, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(YearQuarter.Third, 2, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.First);
            TimeTool.AddQuarter(YearQuarter.Fourth, 2, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Second);

            TimeTool.AddQuarter(YearQuarter.First, -2, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(YearQuarter.Second, -2, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(YearQuarter.Third, -2, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.First);
            TimeTool.AddQuarter(YearQuarter.Fourth, -2, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Second);

            TimeTool.AddQuarter(YearQuarter.First, 3, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(YearQuarter.Second, 3, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.First);
            TimeTool.AddQuarter(YearQuarter.Third, 3, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Second);
            TimeTool.AddQuarter(YearQuarter.Fourth, 3, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Third);

            TimeTool.AddQuarter(YearQuarter.First, -3, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Second);
            TimeTool.AddQuarter(YearQuarter.Second, -3, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(YearQuarter.Third, -3, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(YearQuarter.Fourth, -3, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.First);

            TimeTool.AddQuarter(YearQuarter.First, 4, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.First);
            TimeTool.AddQuarter(YearQuarter.Second, 4, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Second);
            TimeTool.AddQuarter(YearQuarter.Third, 4, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(YearQuarter.Fourth, 4, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Fourth);

            TimeTool.AddQuarter(YearQuarter.First, -4, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.First);
            TimeTool.AddQuarter(YearQuarter.Second, -4, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Second);
            TimeTool.AddQuarter(YearQuarter.Third, -4, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(YearQuarter.Fourth, -4, out year, out quarter);
            Assert.AreEqual(quarter, YearQuarter.Fourth);

            TimeTool.AddQuarter(2008, YearQuarter.First, 1, out year, out quarter);
            Assert.AreEqual(year, 2008);
            Assert.AreEqual(quarter, YearQuarter.Second);
            TimeTool.AddQuarter(2008, YearQuarter.Second, 1, out year, out quarter);
            Assert.AreEqual(year, 2008);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(2008, YearQuarter.Third, 1, out year, out quarter);
            Assert.AreEqual(year, 2008);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(2008, YearQuarter.Fourth, 1, out year, out quarter);
            Assert.AreEqual(year, 2009);
            Assert.AreEqual(quarter, YearQuarter.First);

            TimeTool.AddQuarter(2008, YearQuarter.First, 2, out year, out quarter);
            Assert.AreEqual(year, 2008);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(2008, YearQuarter.Second, 2, out year, out quarter);
            Assert.AreEqual(year, 2008);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(2008, YearQuarter.Third, 2, out year, out quarter);
            Assert.AreEqual(year, 2009);
            Assert.AreEqual(quarter, YearQuarter.First);
            TimeTool.AddQuarter(2008, YearQuarter.Fourth, 2, out year, out quarter);
            Assert.AreEqual(year, 2009);
            Assert.AreEqual(quarter, YearQuarter.Second);

            TimeTool.AddQuarter(2008, YearQuarter.First, 5, out year, out quarter);
            Assert.AreEqual(year, 2009);
            Assert.AreEqual(quarter, YearQuarter.Second);
            TimeTool.AddQuarter(2008, YearQuarter.Second, 5, out year, out quarter);
            Assert.AreEqual(year, 2009);
            Assert.AreEqual(quarter, YearQuarter.Third);
            TimeTool.AddQuarter(2008, YearQuarter.Third, 5, out year, out quarter);
            Assert.AreEqual(year, 2009);
            Assert.AreEqual(quarter, YearQuarter.Fourth);
            TimeTool.AddQuarter(2008, YearQuarter.Fourth, 5, out year, out quarter);
            Assert.AreEqual(year, 2010);
            Assert.AreEqual(quarter, YearQuarter.First);
        }         // AddQuarterTest