コード例 #1
0
        public DateTime Add(DateTime date, CalendarTimeUnit timeUnit, int value, TimeZoneInfo timeZone)
        {
            var dateInCalendarTimeZone = TimeZoneInfo.ConvertTime(date, timeZone, _calendar.TimeZone);
            var result = _provider.Add(dateInCalendarTimeZone, timeUnit, value);

            return(TimeZoneInfo.ConvertTime(result, _calendar.TimeZone, timeZone));
        }
コード例 #2
0
        /// <summary>
        /// Get calculation mechanism by given time unit.
        /// </summary>
        /// <param name="timeUnit">Time unit.</param>
        /// <returns>Calculation mechanism.</returns>
        public virtual BaseCountTerm GetCountTerm(CalendarsTimeUnit timeUnit)
        {
            switch (timeUnit)
            {
            case CalendarsTimeUnit.Minute:
                return(ClassFactory.Get <MinuteCountTerm>());

            case CalendarsTimeUnit.WorkingMinute:
                return(ClassFactory.Get <WorkingMinuteCountTerm>());

            case CalendarsTimeUnit.Hour:
                return(ClassFactory.Get <HourCountTerm>());

            case CalendarsTimeUnit.WorkingHour:
                return(ClassFactory.Get <WorkingHourCountTerm>());

            case CalendarsTimeUnit.Day:
                return(ClassFactory.Get <DayCountTerm>());

            case CalendarsTimeUnit.WorkingDay:
                return(ClassFactory.Get <WorkingDayCountTerm>());

            default:
                var errorMessage = "Unable to create a corresponding count term. Time unit is unspecified.";
                throw new ArgumentException(errorMessage);
            }
        }
コード例 #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CalendarOperationProvider"/> class.
        /// </summary>
        /// <param name="calendar">The calendar.</param>
        /// <param name="timeUnit">The time unit.</param>
        public CalendarOperationProvider(ICalendar <ICalendarDay> calendar, CalendarTimeUnit timeUnit)
        {
            _calendar = calendar;
            var factory = ClassFactory.Get <CalendarCountTermFactory>();

            _countTerm = factory.GetCountTerm(timeUnit);
        }
コード例 #4
0
        public DateTime Add(DateTime dateTime, CalendarTimeUnit timeUnit, int value)
        {
            if (value <= 0)
            {
                return(dateTime);
            }
            var           factory           = ClassFactory.Get <CalendarCountTermFactory>();
            BaseCountTerm countTerm         = factory.GetCountTerm(timeUnit);
            IEnumerable <ICalendarDay> days = GetDays(countTerm, dateTime, value);

            return(countTerm.Calculate(days, value));
        }
コード例 #5
0
 /// <summary>
 /// Gets calendar operation provider.
 /// </summary>
 /// <param name="calendar">The calendar.</param>
 /// <param name="timeUnit">The time unit.</param>
 /// <returns>Calendar operation provider.</returns>
 protected ICalendarOperationProvider GetProvider(ICalendar <ICalendarDay> calendar, CalendarTimeUnit timeUnit)
 {
     if (_calculationLogStore != null)
     {
         return(new CalendarOperationProvider(calendar, timeUnit, _calculationLogStore));
     }
     return(new CalendarOperationProvider(calendar, timeUnit));
 }
コード例 #6
0
 public DateTime Add(DateTime date, CalendarTimeUnit timeUnit, int value)
 {
     return(_provider.Add(date, timeUnit, value));
 }
コード例 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CalendarOperationProvider"/> class.
 /// </summary>
 /// <param name="calendar">The calendar.</param>
 /// <param name="timeUnit">The time unit.</param>
 /// <param name="logStore">Store of term calculation logs<see cref="TermCalculationLogStore"/></param>
 public CalendarOperationProvider(ICalendar <ICalendarDay> calendar, CalendarTimeUnit timeUnit, TermCalculationLogStore logStore) : this(calendar, timeUnit)
 {
     _countTerm.TermCalculationLogStore = logStore;
 }
コード例 #8
0
 /// <summary>
 /// Gets calendar operation provider.
 /// </summary>
 /// <param name="calendar">The calendar.</param>
 /// <param name="timeUnit">The time unit.</param>
 /// <returns>Calendar operation provider.</returns>
 protected ICalendarOperationProvider GetProvider(ICalendar <ICalendarDay> calendar, CalendarTimeUnit timeUnit)
 {
     return(new CalendarOperationProvider(calendar, timeUnit));
 }