static private void PopulateiCalTimeZoneInfo(iCalTimeZoneInfo tzi, System.TimeZoneInfo.TransitionTime transition, int year) { Calendar c = CultureInfo.CurrentCulture.Calendar; RecurrencePattern recurrence = new RecurrencePattern(); recurrence.Frequency = FrequencyType.Yearly; recurrence.ByMonth.Add(transition.Month); recurrence.ByHour.Add(transition.TimeOfDay.Hour); recurrence.ByMinute.Add(transition.TimeOfDay.Minute); if (transition.IsFixedDateRule) { recurrence.ByMonthDay.Add(transition.Day); } else { recurrence.ByDay.Add(new DaySpecifier(transition.DayOfWeek)); int daysInMonth = c.GetDaysInMonth(year, transition.Month); int offset = (transition.Week * 7) - 7; if (offset + 7 > daysInMonth) { offset = daysInMonth - 7; } // Add the possible days of the month this could occur. for (int i = 1; i <= 7; i++) { recurrence.ByMonthDay.Add(i + offset + (int)transition.DayOfWeek); } } tzi.AddRecurrencePattern(recurrence); }
static private void PopulateiCalTimeZoneInfo(ITimeZoneInfo tzi, System.TimeZoneInfo.TransitionTime transition, int year) { var c = CultureInfo.CurrentCulture.Calendar; var recurrence = new RecurrencePattern(); recurrence.Frequency = FrequencyType.Yearly; recurrence.ByMonth.Add(transition.Month); recurrence.ByHour.Add(transition.TimeOfDay.Hour); recurrence.ByMinute.Add(transition.TimeOfDay.Minute); if (transition.IsFixedDateRule) { recurrence.ByMonthDay.Add(transition.Day); } else { if (transition.Week != 5) { recurrence.ByDay.Add(new WeekDay(transition.DayOfWeek, transition.Week)); } else { recurrence.ByDay.Add(new WeekDay(transition.DayOfWeek, -1)); } } tzi.RecurrenceRules.Add(recurrence); }
public static AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, System.TimeZoneInfo.TransitionTime daylightTransitionStart, System.TimeZoneInfo.TransitionTime daylightTransitionEnd) { Contract.Ensures(false); return(default(AdjustmentRule)); }