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; }
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); })); }
/// <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)); }
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
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