Pregunta

Estoy usando Google RFC2445 aplicación (http://code.google.com/p/google-rfc-2445/) para la recurrencia de las reglas.Si he de definir una periodicidad MENSUAL a partir del 30 de enero, los meses con menos de 30 días (es decir, de febrero) será totalmente omitidos.Por lo que la API de Google volvería 30 de enero, 30 de Marzo, 30 de abril, etc.No es buena.Yo esperaría a que vuelva:30 de enero, 28 de Febrero, 30 de Marzo, 30 de abril.

Del mismo modo, si elegí una fecha de inicio el 31 de enero y, a continuación, los meses con menos de 31 días se omitiría.

Esto puede ser correcto, como por la RFC2445 las especificaciones técnicas, o puede ser un error.¿Qué te parece?

Mi pregunta principal es, ¿hay alguna manera de definir una regla que dice que "de repetirse el 30 de cada mes;o el último día del mes, si el 30 no existe".Yo no creo que haya.Alguna sugerencia?

Gracias de antemano.

Saludos, Cormac

¿Fue útil?

Solución

La respuesta es: FREQ = MENSUAL; BYMONTHDAY = 28,29,30; BYSETPOS = -1 que se traduce en " se repite el 30 de cada mes; o el último día del mes si el 30 no existe " ;.

Otros consejos

Parece que estás en lo correcto acerca de la RFC pasar por alto esas fechas.Si su DTSTART es el 31 de enero, y no se especifica un BYMONTHDAY en su regla de repetición (o si BYMONTHDAY es el día 31), a continuación, simplemente voy a ignorar que la regla en los meses donde no hay tal día:

Si BYxxx regla parte de los valores se encuentran que están más allá del ámbito disponibles (es decir, BYMONTHDAY=30 de febrero), que son simplemente ignorados.

Sin embargo, usted debe ser capaz de especificar -1 para BYMONTHDAY y tienen que utilizar el último día del mes, lo que puede pasar a ser.

El BYMONTHDAY regla de la parte especifica de un Carácter COMA (ASCII decimal 44) lista separada de días del mes.Los valores válidos son de la 1 a la 31 o-31 para -1.Por ejemplo, -10 representa la décima para el último día del mes.

Bueno, mirando RFC 2445 en sí mismo definitivamente parece que el comportamiento que usted ' volver a ver es correcto:

  

Si se encuentran valores de parte de la regla BYxxx que están más allá del alcance disponible (es decir, BYMONTHDAY = 30 en febrero), simplemente se ignoran.

La única solución que se me ocurre es utilizar múltiples reglas de recurrencia, es decir, una para el 30 de cada mes y otra para el último día de febrero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top