2014-09-26 4 views
5

Ich versuche, einige Zeitplanungsfunktionalität in Google Kalender in C# mit der RFC5545 Wiederholungsregel zu replizieren.Planen einer monatlichen Veranstaltung "Everything Nth Weekday" mit RFC 5545 Wiederholungsregel

Es gibt zwei Optionen für die monatliche Planung mit Google Kalender, entweder bis jeden N-ten Tag, dh: Jeden 10. Tag des Monats alle 1 Monate, dies wird offensichtlich unabhängig vom Wochentag auftreten.

Meine Wiederholungsregel hierfür ist: FREQ=MONTHLY;BYMONTHDAY=10

Die andere Option ist die Veranstaltung auf jeden N-ten Wochentag zu wiederholen, das heißt: "Jeden zweiten Sonntag alle 1 Monat, das ist der, den ich Probleme, bin schreiben die Regel für.

Was sollte meine Regel für die zweite Regel sein? Ich habe versucht, FREQ=MONTHLY;BYDAY=SU, aber ich bin unsicher, wie/welche Parameter zu verwenden, nur jeden zweiten Sonntag des Monats zu tun.

Ich verwende die DDay iCal C# -Bibliothek, um meine Wiederholungsregel zu generieren, aber ich freue mich, dass nur gezeigt wird, wie der Regel-String aussehen sollte, um das gewünschte Verhalten zu erreichen.

Ich benutze die RFC 5545 recurrence rule.

Antwort

3

Sie sind fast da. Was Sie brauchen, ist der Index für den Tag zu setzen, sagt RFC5545:

Jeder BYDAY Wert kann auch durch eine positive vorangestellt werden (+ n) oder negativ (-n) integer. Wenn vorhanden, zeigt dies das n-te Auftreten eines bestimmten Tages innerhalb des MONTLICHEN oder JAHRES "RRULE" an.

für die RFC5545 später ein Beispiel

Monat am ersten Freitag für 10 Vorkommen gibt: für Sie

DTSTART;TZID=America/New_York:19970905T090000 
    RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR 

so die Regel sein muss:

RRULE:FREQ=MONTHLY;BYDAY=2SU