コード例 #1
0
ファイル: iCalTimeZone.cs プロジェクト: MaitreDede/dday-ical
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
            public static AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, System.TimeZoneInfo.TransitionTime daylightTransitionStart, System.TimeZoneInfo.TransitionTime daylightTransitionEnd)
            {
                Contract.Ensures(false);

                return(default(AdjustmentRule));
            }