コード例 #1
0
        /// <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));
                }
            }
        }
コード例 #2
0
        /// <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);
                }
            }
        }