Question

J'utilise l'implémentation RFC2445 de Google ( http://code.google. com / p / google-rfc-2445 / ) pour les règles de récurrence. Si je définis une récurrence MENSUELLE débutant le 30 janvier, les mois de moins de 30 jours (février) seront totalement ignorés. Donc, l'API de Google reviendrait le 30 janvier, le 30 mars, le 30 avril, etc. Pas bien. Je pense que cela reviendra le 30 janvier, 28 février, 30 mars et 30 avril.

De même, si je choisissais de commencer le 31 janvier, tous les mois de moins de 31 jours seraient ignorés.

Ceci peut être correct selon la spécification RFC2445 ou peut être un bogue. Qu'en penses-tu?

Ma question principale est la suivante: existe-t-il un moyen de définir une règle qui dit & "se reproduit le 30 de chaque mois; ou le dernier jour du mois si le 30 n'existe pas & '; Je ne crois pas qu'il y en ait. Des suggestions?

Merci d'avance.

Cordialement, Cormac

Était-ce utile?

La solution

La réponse est: FREQ = MENSUEL; BYMONTHDAY = 28,29,30; BYSETPOS = -1, ce qui se traduit par & "; se reproduit le 30 de chaque mois; ou le dernier jour du mois si le 30 n'existe pas ".

Autres conseils

Vous semblez avoir raison lorsque la RFC ignore ces dates. Si votre DTSTART est le 31 janvier et que vous ne spécifiez pas de BYMONTHDAY dans votre règle de récurrence (ou si <=> est le 31), il ignorera simplement cette règle dans les mois où il n'y en a pas. jour:

  

Si des valeurs de partie de règle BYxxx sont trouvées   qui sont au-delà de la portée disponible   (c’est-à-dire, AVANT-MIDI = 30 en février), ils   sont simplement ignorés.

Toutefois , vous devriez pouvoir spécifier -1 pour <=> et lui demander d'utiliser le dernier jour du mois, quel qu'il soit.

  

La partie de règle BYMONTHDAY spécifie un   Caractère COMMA (décimal ASCII 44)   liste séparée des jours du mois.   Les valeurs valides sont 1 à 31 ou -31 à -1.   Par exemple, -10 représente le dixième   jusqu'au dernier jour du mois.

Eh bien, en regardant la RFC 2445 elle-même, il semble bien que votre comportement re voir est correct:

  

Si des valeurs de partie de règle BYxxx sont trouvées et dépassent la portée disponible (c'est-à-dire, BYMONTHDAY = 30 en février), elles sont simplement ignorées.

La seule solution à laquelle je puisse penser consiste à utiliser plusieurs règles de récurrence, à savoir une pour le 30 de chaque mois et une autre pour le dernier jour de février.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top