/// <summary> /// Creates the months. /// </summary> /// <param name="slice">The slice.</param> /// <param name="date">The minimum date. Any date earlier that this will not be incorporated if not affected.</param> private void CreateMonths(QuarterTimeSlice slice, DateTime date) { foreach (var month in _dateCalculationService.GetMonthsInQuarter(slice.Value)) { var startOfMonth = _dateCalculationService.GetStartAndEndDateOfMonth(new DateTime(slice.Start.Year, month, 1), out DateTime endOfMonth); if (slice.Start.Year != date.Year || slice.Start.Year == date.Year && month >= date.Month) { slice.AddSlice(new MonthTimeSlice(startOfMonth, endOfMonth, month)); } } }
/// <summary> /// Creates the quarters. /// </summary> /// <param name="slice">The slice.</param> /// <param name="date">The minimum date. Any date earlier that this will not be incorporated if not affected.</param> private void CreateQuarters(YearTimeSlice slice, DateTime date) { var affectedQuarter = _dateCalculationService.GetQuarterOfDate(date); for (var i = 0; i <= 3; i++) { var month = (i * 3) + 1; var startOfQuarter = _dateCalculationService.GetStartAndEndDateOfQuarter(new DateTime(slice.Start.Year, month, 1), out DateTime endOfQuater, out int quarter); if (slice.Start.Year != date.Year || slice.Start.Year == date.Year && quarter >= affectedQuarter) { var quarterSlice = new QuarterTimeSlice(startOfQuarter, endOfQuater, quarter); //Note: Not necessary now: CreateMonths(quarterSlice, date); slice.AddSlice(quarterSlice); } } }