Ich habe viele RRULEs durchsucht, um die Leistung von google-rfc-2445 (eine Java-Implementierung von IETF RFC 2445 iCalendar ).
Ich habe gesehen, dass ich das Startdatum in einigen Fällen in der Rückkehrliste von der Methode zurückbekommen habe.
Der Test ist sehr einfach:
%Vor%Die von der Fabrik zurückgegebene Liste gibt diese Liste zurück.
Das erste Datum ist das Startdatum und es ist ein Samstag, der nicht da sein sollte. Die RRULE enthielt auch einen COUNT = 10, warum also 11 zurückgeben?
%Vor%Jemand, der das Google-rfc-2445 verwendet, muss dieses Problem schon einmal gehabt haben?
Ich habe das Problem auf der Projektseite veröffentlicht, aber es ist sehr ruhig dort. Link zum Problem auf der Seite google-rfc-2445
RFC2445 Abschnitt 4.3.10 Wiederholungsregel gibt an, dass
[...] Der COUNT-Regelteil definiert die Anzahl der Vorkommen, an denen die Wiederholung bereichsbündig sein soll. Der Wert der Eigenschaft "DTSTART", falls angegeben, gilt als erstes Vorkommen. [...]
, während das Vorhandensein von DTSTART
in der zurückgegebenen Liste normal ist, ist weniger die Größe der zurückgegebenen Liste zu erwarten.
Angesichts der RFC2445-Spezifikation ist es sinnvoller, wenn die DTSTART
die erste Instanz der Wiederholung ist, um auch sicherzustellen, dass andere Kalender die ical-Datei richtig verstehen.
Ebenfalls zu beachten ist, dass RFC2445
durch RFC5545
veraltet ist, was auch die DTSTART
als erste Instanz von RRULE
angibt (und sogar betont, Anmerkung: das hinzugefügte Wort immer) (empahsis von mir hinzugefügt)
Abschnitt RFC5545 RRULE : Der COUNT-Regelteil definiert die Anzahl der Vorkommen, bei denen der Bereich liegen soll -gebunden die Wiederholung. Der "DTSTART" -Eigenschaftswert immer zählt als erstes Vorkommen.
Versuchen Sie etwas wie folgt:
%Vor%Die Idee ist, die Sequenz einen Tag früher zu starten und das erste Datum mit der EXDATE-Regel auszuschließen.