/// <summary> /// Initializes this transition based on the specified transition time. /// </summary> /// <param name="transitionTime">The transition time to initialize from.</param> internal override void InitializeFromTransitionTime(Misc.TransitionTime transitionTime) { base.InitializeFromTransitionTime(transitionTime); this.timeOffset = transitionTime.TimeOfDay.TimeOfDay; this.month = transitionTime.Month; }
/// <summary> /// Initializes a new instance of the <see cref="LegacyAvailabilityTimeZoneTime"/> class. /// </summary> /// <param name="transitionTime">The transition time used to initialize this instance.</param> /// <param name="delta">The offset used to initialize this instance.</param> internal LegacyAvailabilityTimeZoneTime(Misc.TransitionTime transitionTime, TimeSpan delta) : this() { this.delta = delta; if (transitionTime.IsFixedDateRule) { // TimeZoneInfo doesn't support an actual year. Fixed date transitions occur at the same // date every year the adjustment rule the transition belongs to applies. The best thing // we can do here is use the current year. this.year = DateTime.Today.Year; this.month = transitionTime.Month; this.dayOrder = transitionTime.Day; this.timeOfDay = transitionTime.TimeOfDay.TimeOfDay; } else { // For floating rules, the mapping is direct. this.year = 0; this.month = transitionTime.Month; this.dayOfTheWeek = EwsUtilities.SystemToEwsDayOfTheWeek(transitionTime.DayOfWeek); this.dayOrder = transitionTime.Week; this.timeOfDay = transitionTime.TimeOfDay.TimeOfDay; } }
public AdjustmentRule(TimeZoneInfo.AdjustmentRule rule) { Origin = rule; DateStart = rule.DateStart; DateEnd = rule.DateEnd; DaylightTransitionStart = new TransitionTime(rule.DaylightTransitionStart); DaylightTransitionEnd = new TransitionTime(rule.DaylightTransitionEnd); DaylightDelta = rule.DaylightDelta; }
/// <summary> /// Initializes this transition based on the specified transition time. /// </summary> /// <param name="transitionTime">The transition time to initialize from.</param> internal override void InitializeFromTransitionTime(Misc.TransitionTime transitionTime) { base.InitializeFromTransitionTime(transitionTime); this.dayOfTheWeek = EwsUtilities.SystemToEwsDayOfTheWeek(transitionTime.DayOfWeek); // TimeZoneInfo uses week indices from 1 to 5, 5 being the last week of the month. // EWS uses -1 to denote the last week of the month. this.weekIndex = transitionTime.Week == 5 ? -1 : transitionTime.Week; }
public static TransitionTime CreateFixedDateRule( DateTime timeOfDay, int month, int day) { TransitionTime transitionTime = new TransitionTime(); transitionTime.IsFixedDateRule = true; transitionTime.TimeOfDay = timeOfDay; transitionTime.Month = month; transitionTime.Day = day; return(transitionTime); }
public static TransitionTime CreateFloatingDateRule( DateTime timeOfDay, int month, int week, DayOfWeek dayOfWeek) { TransitionTime transitionTime = new TransitionTime(); transitionTime.IsFixedDateRule = false; transitionTime.TimeOfDay = timeOfDay; transitionTime.Month = month; transitionTime.Week = week; transitionTime.DayOfWeek = dayOfWeek; return(transitionTime); }
public static AdjustmentRule CreateAdjustmentRule( DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TransitionTime daylightTransitionStart, TransitionTime daylightTransitionEnd) { AdjustmentRule adjustmentRule = new AdjustmentRule(); adjustmentRule.DateStart = dateStart; adjustmentRule.DateEnd = dateEnd; adjustmentRule.DaylightDelta = daylightDelta; adjustmentRule.DaylightTransitionStart = daylightTransitionStart; adjustmentRule.DaylightTransitionEnd = daylightTransitionEnd; return(adjustmentRule); }
/// <summary> /// Creates a time zone transition based on the specified transition time. /// </summary> /// <param name="timeZoneDefinition">The time zone definition that will own the transition.</param> /// <param name="targetPeriod">The period the transition will target.</param> /// <param name="transitionTime">The transition time to initialize from.</param> /// <returns>A TimeZoneTransition.</returns> internal static TimeZoneTransition CreateTimeZoneTransition( TimeZoneDefinition timeZoneDefinition, TimeZonePeriod targetPeriod, Misc.TransitionTime transitionTime) { TimeZoneTransition transition; if (transitionTime.IsFixedDateRule) { transition = new AbsoluteDayOfMonthTransition(timeZoneDefinition, targetPeriod); } else { transition = new RelativeDayOfMonthTransition(timeZoneDefinition, targetPeriod); } transition.InitializeFromTransitionTime(transitionTime); return(transition); }
/// <summary> /// Initializes this transition based on the specified transition time. /// </summary> /// <param name="transitionTime">The transition time to initialize from.</param> internal override void InitializeFromTransitionTime(Misc.TransitionTime transitionTime) { throw new ServiceLocalException(Strings.UnsupportedTimeZonePeriodTransitionTarget); }
internal static AdjustmentRule CreateAdjustmentRule(DateTime date1, DateTime date2, TimeSpan timeSpan, TransitionTime transitionTime1, TransitionTime transitionTime2) { return(new AdjustmentRule(TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(date1, date2, timeSpan, transitionTime1.Origin, transitionTime2.Origin))); }
/// <summary> /// Initializes this transition based on the specified transition time. /// </summary> /// <param name="transitionTime">The transition time to initialize from.</param> internal virtual void InitializeFromTransitionTime(Misc.TransitionTime transitionTime) { }
/// <summary> /// Initializes this transition based on the specified transition time. /// </summary> /// <param name="transitionTime">The transition time to initialize from.</param> internal override void InitializeFromTransitionTime(Misc.TransitionTime transitionTime) { base.InitializeFromTransitionTime(transitionTime); this.dayOfMonth = transitionTime.Day; }