Exemplo n.º 1
0
        /// <summary>
        ///  <paramref name="moment"/>이 속하면서, <paramref name="periodKind"/>에 해당하는 <see cref="ICalendarTimeRange"/>을 구합니다.
        /// </summary>
        /// <param name="moment"></param>
        /// <param name="periodKind"></param>
        /// <param name="periodCount"></param>
        /// <param name="timeCalendar"></param>
        /// <returns></returns>
        public static ICalendarTimeRange GetPeriodsOf(this DateTime moment, PeriodKind periodKind, int periodCount,
                                                      ITimeCalendar timeCalendar)
        {
            if (IsDebugEnabled)
            {
                log.Debug("날짜[{0}]가 속한 기간종류[{1}]의 기간을 구합니다. periodCount=[{2}], timeCalendar=[{3}]",
                          moment.ToSortableString(), periodKind, periodCount, timeCalendar);
            }

            switch (periodKind)
            {
            case PeriodKind.Year:
                return(GetYearRanges(moment, periodCount, timeCalendar));

            case PeriodKind.Halfyear:
                return(GetHalfyearRanges(moment, periodCount, timeCalendar));

            case PeriodKind.Quarter:
                return(GetQuarterRanges(moment, periodCount, timeCalendar));

            case PeriodKind.Month:
                return(GetMonthRanges(moment, periodCount, timeCalendar));

            case PeriodKind.Week:
                return(GetWeekRanges(moment, periodCount, timeCalendar));

            case PeriodKind.Day:
                return(GetDayRanges(moment, periodCount, timeCalendar));

            case PeriodKind.Hour:
                return(GetHourRanges(moment, periodCount, timeCalendar));

            case PeriodKind.Minute:
                return(GetMinuteRanges(moment, periodCount, timeCalendar));

            case PeriodKind.Second:
                return(new CalendarTimeRange(moment.TrimToMillisecond(), DurationUtil.Seconds(periodCount), timeCalendar));

            default:
                throw new NotSupportedException("지원하지 않는 TimePeriod 종류입니다. periodKind=" + periodKind);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// <paramref name="start"/>부터 상대적으로 <paramref name="hours"/> 시간수 만큼의 기간
 /// </summary>
 /// <param name="start">시작 시각</param>
 /// <param name="hours">시간 간격 (시간수)</param>
 public static TimeRange GetRelativeHourPeriod(this DateTime start, int hours)
 {
     return(new TimeRange(start, DurationUtil.Hours(hours)));
 }
Exemplo n.º 3
0
 /// <summary>
 /// <paramref name="start"/>부터 상대적으로 <paramref name="days"/> 일수 만큼의 기간
 /// </summary>
 /// <param name="start">시작 시각</param>
 /// <param name="days">시간 간격 (일수)</param>
 public static TimeRange GetRelativeDayPeriod(this DateTime start, int days)
 {
     return(new TimeRange(start, DurationUtil.Days(days)));
 }
Exemplo n.º 4
0
 /// <summary>
 /// <paramref name="start"/>부터 상대적으로 <paramref name="weeks"/> 주수 만큼의 기간
 /// </summary>
 /// <param name="start">시작 시각</param>
 /// <param name="weeks">시간 간격 (주수)</param>
 public static TimeRange GetRelativeWeekPeriod(this DateTime start, int weeks)
 {
     return(new TimeRange(start, DurationUtil.Weeks(weeks)));
 }
Exemplo n.º 5
0
 /// <summary>
 /// <paramref name="start"/>부터 상대적으로 <paramref name="seconds"/> 초수 만큼의 기간
 /// </summary>
 /// <param name="start">시작 시각</param>
 /// <param name="seconds">시간 간격 (초수)</param>
 public static TimeRange GetRelativeSecondPeriod(this DateTime start, int seconds)
 {
     return(new TimeRange(start, DurationUtil.Seconds(seconds)));
 }
Exemplo n.º 6
0
 /// <summary>
 /// <paramref name="start"/>부터 상대적으로 <paramref name="minutes"/> 분수 만큼의 기간
 /// </summary>
 /// <param name="start">시작 시각</param>
 /// <param name="minutes">시간 간격 (분수)</param>
 public static TimeRange GetRelativeMinutePeriod(this DateTime start, int minutes)
 {
     return(new TimeRange(start, DurationUtil.Minutes(minutes)));
 }