Exemple #1
0
        /// <summary>
        /// <paramref name="period"/>를 <paramref name="periodKind"/> 단위로 열거합니다.
        /// </summary>
        /// <param name="period">전체 기간</param>
        /// <param name="periodKind">열거할 기간의 단위</param>
        /// <returns>열거할 기간 단위를 가지는 기간의 컬렉션</returns>
        public static IEnumerable <ITimePeriod> ForEachPeriods(this ITimePeriod period, PeriodKind periodKind)
        {
            switch (periodKind)
            {
            case PeriodKind.Year:
                return(period.ForEachYears());

            case PeriodKind.Halfyear:
                return(period.ForEachHalfYears());

            case PeriodKind.Quarter:
                return(period.ForEachQuarters());

            case PeriodKind.Month:
                return(period.ForEachMonths());

            case PeriodKind.Week:
                return(period.ForEachWeeks());

            case PeriodKind.Day:
                return(period.ForEachDays());

            case PeriodKind.Hour:
                return(period.ForEachHours());

            case PeriodKind.Minute:
                return(period.ForEachMinutes());

            default:
                throw new InvalidOperationException("지원하지 않는 PeriodKind입니다. PeriodKind=" + periodKind);
            }
        }