Frage

Ich verwende Google RFC2445-Implementierung ( http://code.google. com / p / google-rfc-2445 / ) für Wiederholungsregeln. Wenn ich ein monatliches Wiederholung Start am 30. Januar Monaten mit weniger als 30 Tagen definieren (das heißt, im Februar) sein total übersprungen. So ist die Google-API würde zurückkehren 30. Januar, 30. März, 30. April, etc. Nicht gut. Ich würde erwarten, dass es zurückzukehren. 30. Januar, 28. Februar, 30. März, 30. April

Und falls ich ein Startdatum der 31. Januar gepflückt, dann alle Monate mit weniger als 31 Tagen würden übersprungen werden.

Dies kann gemäß dem RFC2445 spec richtig sein oder es kann ein Fehler sein. Was denken Sie?

Meine Hauptfrage ist, ist es eine Möglichkeit, eine Regel zu definieren, die sagt: „wiederholen am 30. eines jeden Monats oder der letzte Tag des Monats, wenn der 30. existiert nicht“. Ich glaube nicht, es gibt. Irgendwelche Vorschläge?

Vielen Dank im Voraus.

Viele Grüße, Cormac

War es hilfreich?

Lösung

Die Antwort lautet: FREQ = MONATS; BYMONTHDAY = 28,29,30; BYSETPOS = -1 was übersetzt „wiederkehren am 30. eines jeden Monats oder der letzte Tag des Monats, wenn der 30. existiert nicht“ .

Andere Tipps

Es sieht aus wie Sie sich über die RFC sind jene Daten zu überspringen. Wenn Ihr DTSTART Januar 31, und Sie keine BYMONTHDAY in Ihrer Wiederholungsregel angeben (oder wenn BYMONTHDAY am 31.), dann wird es einfach, diese Regel in Monaten ignorieren, wo es keinen solchen Tag ist:

  

Wenn ein Teil Wert BYxxx Regel gefunden   welche sind über den Umfang verfügbar   (Dh BYMONTHDAY = 30 im Februar), sie   werden einfach ignoriert.

Doch , sollten Sie in der Lage sein, geben Sie -1 für BYMONTHDAY und haben den letzten Tag des Monats verwenden, was auch immer es sein mag.

  

Die BYMONTHDAY Regel Teil gibt ein   Kommazeichen (ASCII dezimal 44)   getrennte Liste von Tagen des Monats.   Gültige Werte sind 1 bis 31 oder -31 bis -1.   Zum Beispiel stellt das zehnte -10   bis zum letzten Tag des Monats.

Nun, unter RFC 2445 selbst rel="nofollow scheint es auf jeden Fall, dass das Verhalten, das Sie‘ re Sehen ist richtig:

  

Wenn BYxxx Regel Teil Werte gefunden werden, die über den verfügbaren Umfang (dh BYMONTHDAY = 30 im Februar), werden sie einfach ignoriert.

Die einzige Lösung, die ich denken kann, ist mehrere Wiederholungsregeln zu verwenden, das heißt eine für den 30. eines jeden Monats und ein anderer für den letzten Tag im Februar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top