}         // TimePeriodSubtractor

        // ----------------------------------------------------------------------
        public TimePeriodSubtractor(ITimePeriodMapper periodMapper)
        {
            this.periodMapper     = periodMapper;
            timePeriodCombiner    = new TimePeriodCombiner <T>(periodMapper);
            timeGapCalculator     = new TimeGapCalculator <T>(periodMapper);
            timePeriodIntersector = new TimePeriodIntersector <T>(periodMapper);
        }         // TimePeriodSubtractor
Пример #2
0
        public TimeLine(ITimePeriodContainer periods, ITimePeriod limits, ITimePeriodMapper periodMapper)
        {
            periods.ShouldNotBeNull("periods");

            Periods      = periods;
            Limits       = (limits != null) ? new TimeRange(limits) : new TimeRange(periods);
            PeriodMapper = periodMapper;
        }
        // ----------------------------------------------------------------------
        protected TimeLinePeriodEvaluator( ITimePeriodContainer periods, ITimePeriodMapper periodMapper = null )
        {
            if ( periods == null )
            {
                throw new ArgumentNullException( "periods" );
            }

            this.periods = periods;
            this.periodMapper = periodMapper;
        }
        // ----------------------------------------------------------------------
        protected TimeLinePeriodEvaluator(ITimePeriodContainer periods, ITimePeriodMapper periodMapper = null)
        {
            if (periods == null)
            {
                throw new ArgumentNullException("periods");
            }

            this.periods      = periods;
            this.periodMapper = periodMapper;
        } // TimeLinePeriodEvaluator
Пример #5
0
        }         // TimeLine

        // ----------------------------------------------------------------------
        public TimeLine(ITimePeriodContainer periods, ITimePeriod limits = null, ITimePeriodMapper periodMapper = null)
        {
            if (periods == null)
            {
                throw new ArgumentNullException("periods");
            }

            this.limits       = limits != null ? new TimeRange(limits) : new TimeRange(periods);
            this.periods      = periods;
            this.periodMapper = periodMapper;
        }         // TimeLine
Пример #6
0
        } // HasSameData

        // ----------------------------------------------------------------------
        private static TimeRange ToCalendarTimeRange(ITimePeriod period, ITimePeriodMapper mapper)
        {
            DateTime mappedStart = mapper.MapStart(period.Start);
            DateTime mappedEnd   = mapper.MapEnd(period.End);

            if (mappedEnd <= mappedStart)
            {
                throw new NotSupportedException();
            }
            return(new TimeRange(mappedStart, mappedEnd));
        } // ToCalendarTimeRange
Пример #7
0
        /// <summary>
        /// 지정된 기간을 <paramref name="mapper"/>를 통해 매핑한 기간으로 반환합니다.
        /// </summary>
        /// <param name="period"></param>
        /// <param name="mapper"></param>
        /// <returns></returns>
        private static TimeRange ToCalendarTimeRange(ITimePeriod period, ITimePeriodMapper mapper)
        {
            period.ShouldNotBeNull("period");

            mapper = mapper ?? new TimeCalendar();
            var mappedStart = mapper.MapStart(period.Start);
            var mappedEnd   = mapper.MapEnd(period.End);

            TimeTool.AssertValidPeriod(mappedStart, mappedEnd);
            var mapped = new TimeRange(mappedStart, mappedEnd);

            if (IsDebugEnabled)
            {
                log.Debug("TimeCalendar 기준의 기간으로 매핑했습니다. period=[{0}], mapped=[{1}]", period, mapped);
            }

            return(mapped);
        }
Пример #8
0
 public TimeLine(ITimePeriodContainer periods, ITimePeriodMapper periodMapper) : this(periods, null, periodMapper)
 {
 }
Пример #9
0
        }         // TimePeriodIntersector

        // ----------------------------------------------------------------------
        public TimePeriodIntersector(ITimePeriodMapper periodMapper)
        {
            this.periodMapper = periodMapper;
        }         // TimePeriodIntersector
Пример #10
0
        }         // TimePeriodCombiner

        // ----------------------------------------------------------------------
        public TimePeriodCombiner(ITimePeriodMapper periodMapper)
        {
            this.periodMapper = periodMapper;
        }         // TimePeriodCombiner
Пример #11
0
 public TimeGapCalculator(ITimePeriodMapper periodMapper)
 {
     this.PeriodMapper = periodMapper;
 }
Пример #12
0
 // ----------------------------------------------------------------------
 private static TimeRange ToCalendarTimeRange( ITimePeriod period, ITimePeriodMapper mapper )
 {
     DateTime mappedStart = mapper.MapStart( period.Start );
     DateTime mappedEnd = mapper.MapEnd( period.End );
     if ( mappedEnd <= mappedStart )
     {
         throw new NotSupportedException();
     }
     return new TimeRange( mappedStart, mappedEnd );
 }
Пример #13
0
 /// <summary>
 /// 생성자
 /// </summary>
 /// <param name="mapper">시작/완료 시각에 대한 매퍼</param>
 public TimeGapCalculator(ITimePeriodMapper mapper)
 {
     PeriodMapper = mapper;
 }
Пример #14
0
 /// <summary>
 /// 생성자
 /// </summary>
 /// <param name="mapper">시각 Mapper</param>
 public TimePeriodCombiner(ITimePeriodMapper mapper)
 {
     PeriodMapper = mapper;
 }