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