2016-09-19 1 views
1

Ich suche einen Weg, um eine Situation wie folgt in icalendar auszudrücken: ein Ereignis passiert jeden Monat, x Tage nach einem bestimmten Datum.RRULE 20 Tage nach jedem 15. in einem Monat, in icalendar (RFC 5545)?

zB:.. 20 Tage nach dem 15. Tag im Monat, so könnte es 3., 4., 5., 6. sein (wie Februar) wenn bymonthday bis 35 eingestellt werden kann, ist es ok ist

Aber in Outlook diese won So lösen Sie diese Frage

+0

Eigentlich Ich möchte eine Zeit wie heute: x Tage nach ** BYMONTHDAY **. – Raymond

Antwort

0

Sie könnten vielleicht versuchen, die Regel "; BYSETPOS = 20" hinzuzufügen. Die Spezifikation zeigt einen Beispiel le von BYSETPOS bei der Verwendung mit BYDAY, aber es ist mir nicht klar, wie es gehandhabt wird, wenn BYMONTHDAY verwendet wird. Ich sehe keine andere Möglichkeit, die Spezifikation zu betrachten.

http://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html

http://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html

+0

danke, zcontent. Ich habe es versucht, aber es wird nicht funktionieren. In dem Artikel steht BYSETPOS für die N-te Vorkommens-Konjunktion mit BYXXX. Wenn ich BYSETPOS mit BYMONTHDAY verbinde, bedeutet dies das 20. Vorkommen, den 15. Tag eines Monats, also 20 Monate nach dem ersten Tag. – Raymond

0

Sorry, was Sie wollen, ist mit einem RRULE nicht möglich.

Was Sie wollen, ist RRULE: FREQ = MONATLICH, BYMONTHDAY = 35. Leider ist es ungültig - BYMONTHDAY kann 31 nicht überschreiten.

BYSETPOS wird auch nicht funktionieren. In RFC 5545, Seite 43 unter BYSETPOS ist Folgendes: "BYSETPOS operiert auf einer Reihe von Wiederholungsinstanzen in einem Intervall der Wiederholungsregel." Das bedeutet, dass Sie keinen Wert über das Intervall hinaus erhalten können. Wenn Sie Monthly verwenden, sind Sie auf den einen Monat beschränkt.

Wenn Sie experimentieren mit einigen RRULEs an meinem Wiederholungsregel (RRULE Parser) versuchen http://balsoftware.net/index.php/open-source/rrule-parser/

Verwandte Themen