Ich habe einige Tests durchführen. Hier ist mein Code:Does DDay Ical Bibliothek berechnen wiederkehrende Regeln korrekt?
var systemTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var icalTimeZone = iCalTimeZone.FromSystemTimeZone(systemTimeZone);
var startTimeSearch = new DateTime(2015, 9, 8, 0, 0, 0, DateTimeKind.Utc);
var endTimeSearch = new DateTime(2015, 12, 1, 00, 0, 0, DateTimeKind.Utc);
var iCalendar = new iCalendar();
var pacificTimeZone = _iCalendar.AddTimeZone(icalTimeZone);
var event = new Event
{
Summary = "This is an event at 2015-09-08 10:30 PST (2015-09-08 17:30 UTC)",
DTStart = new iCalDateTime(2015, 9, 8, 10, 30, 0, pacificTimeZone.TZID, iCalendar),
Duration = new TimeSpan(0, 1, 0, 0)
};
var rp = new RecurrencePattern("FREQ=WEEKLY;UNTIL=20151112T080000Z;WKST=SU;BYDAY=TU");
event.RecurrenceRules.Add(rp);
iCalendar.Events.Add(_event);
var occurrences = iCalendar.GetOccurrences(startTimeSearch, endTimeSearch);
Hier ist das Ergebnis:
10 Vorkommnissen - hier sind die Vorkommen Period.StartTime.Value und UTC Eigenschaften
Wert - 9/8/2015 10:30:00 - UTC 9/8/2015 17:30:00
Wert - 9/15/2015 10:30:00 - UTC 9/15/2015 17:30:00
Wert - 2015.09.22 10.30.00 - UTC 9/22/2015 17:30:00
Wert-9/29/2015 10.30.00 - UTC 9/29/2015 17:30:00
Wert - 2015.10.06 10.30.00 - UTC 2015.10.06 17: 30:00
Wert - 10/13/2015 10:30:00 - UTC 10/13/2015 1 7:30:00
Wert - 2015.10.20 10.30.00 - UTC 10/20/2015 17:30:00
Wert - 2015.10.27 10.30 Uhr: 00 - UTC 10/27/2015 17:30:00
Wert -11/3/2015 10.30.00 - UTC 2015.11.03 17.30.00 (Dies sollte 18:30:00!)
Wert - 11.10.2015 10:30:00 - UTC 2015.11.10 17.30.00 (dies sollte 18.30.00 SEIN!)
Wie Sie sehen können, sollte die letzten beiden eine UTC-Zeit von 18.30 Uhr haben : 00. Also ich frage mich, ob dies nur die Art und Weise funktioniert DDay Ical und ich sollte nicht zählen auf den UTC Datetime richtig hinzubekommen, oder wenn ich etwas falsch tue.
könnte es etwas mit Sommer zu tun? – Thorarins