Ich habe eine RRULE bei der Formulierung nicht erfolgreich gewesen, die ein Ereignis wie unten erlauben würde, gezeigt:Wie eine iCalendar haben (RFC 2445) wiederholen JÄHRLICH mit Dauer
Repeats JÄHRLICH vom ersten Sonntag im April bis zum letzten Tag des Monats Mai kommt am Montag, Mittwoch und Freitag vor, für immer.
FREQ = JäHRLICH; BYMONTH = 4; BYDAY = SU (gibt mir den ersten Sonntag im April jährliche Wiederholung)
und
FREQ = JäHRLICH; BYMONTH = 5; BYMONTHDAY = -1 (gibt mir den letzten Tag des Mai wiederholt sich jährlich)
Aber ich kann nicht herausfinden, wie das Ereignis zwischen diesen Daten für Montag, Mittwoch und Freitag jährlich zu wiederholen.
Vorschläge?
Update: Kommentare haben nicht genügend Platz, um auf Chris 'Antwort zu antworten, daher bearbeite ich die Frage mit weiteren Informationen.
Leider nein. Ich weiß nicht, ob es die DDay.iCal-Bibliothek ist, die ich benutze oder was, aber das funktioniert auch nicht. Ich habe festgestellt, dass der Start des Datums kein ordinales Datum sein kann (erster Sonntag, etc.). Es muss ein bestimmtes Datum sein, was es für meine Anforderungen schwierig macht. Selbst unter Verwendung scheint es mehrere RRULE die nicht zu arbeiten:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//DDay.iCal//NONSGML ddaysoftware.com//EN
BEGIN:VEVENT
CREATED:20090717T033307Z
DTSTAMP:20090717T033307Z
DTSTART:20090101T000000
RRULE:FREQ=YEARLY;WKST=SU;BYDAY=MO,WE,FR;BYMONTH=4,5
RRULE:FREQ=YEARLY;WKST=SU;BYDAY=1SU;BYMONTH=4
RRULE:FREQ=YEARLY;WKST=SU;BYMONTH=5;BYMONTHDAY=-1
SEQUENCE:0
UID:352ed9d4-04d0-4f06-a094-fab7165e5c74
END:VEVENT
END:VCALENDAR
Das ist richtig auf dem Gesicht sieht (ich bin auch die Veranstaltung am 1.1.2009 beginnen), aber wenn ich anfangen zu testen, ob bestimmte Tage gültig, bekomme ich falsche Ergebnisse.
Zum Beispiel
4/1/2009 12:00:00 AM = True // Should be False
4/6/2009 12:00:00 AM = True
4/7/2009 12:00:00 AM = False
4/8/2009 12:00:00 AM = True
5/1/2009 12:00:00 AM = True
5/2/2009 12:00:00 AM = False
5/29/2009 12:00:00 AM = True
5/31/2009 12:00:00 AM = True // Should be False
6/1/2009 12:00:00 AM = False
Ich verwende Douglas Day's DDay.iCal Software, aber ich glaube nicht, dass es ein Fehler in dieser Bibliothek ist. Ich denke, dass dies eine Einschränkung in iCalendar (RFC 2445) sein könnte.
Gedanken?