There appears to be a slight inconsistency in the way monthly recurrences on
day 29, 30 and 31 are handled by DateTime::Event::ICal.  With bymonthday set
to 29, for a non-leap year, March 1st gets included in the set in place of
non-existent February 29.  But with bymonthday set to 30, the February
recurrence is skipped. And with bymonthday set to 31, any months with <31
days is skipped. I imagine this is because February can sometimes contain 29
days, but it seems like this should be handled consistently ... either the
months without the requested day should always be skipped, or the 1st of the
next month always included.

 

RRULE:FREQ=MONTHLY;BYMONTHDAY=29;

DTSTART: 2005-01-01

Set with count=12 contains:

2005-01-29

2005-03-01

2005-03-29

2005-04-29

2005-05-29

2005-06-29

2005-07-29

2005-08-29

2005-09-29

2005-10-29

2005-11-29

2005-12-29

 

RRULE:FREQ=MONTHLY;BYMONTHDAY=30;

DTSTART: 2005-01-01

Set with count=12 contains:

2005-01-30

2005-03-30

2005-04-30

2005-05-30

2005-06-30

2005-07-30

2005-08-30

2005-09-30

2005-10-30

2005-11-30

2005-12-30

2006-01-30

 

RRULE:FREQ=MONTHLY;BYMONTHDAY=31;

DTSTART: 2005-01-01

Set with count=12 contains:

2005-01-31

2005-03-31

2005-05-31

2005-07-31

2005-08-31

2005-10-31

2005-12-31

2006-01-31

2006-03-31

2006-05-31

2006-07-31

2006-08-31

 

Bridget Almas

[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> 

Ovid Technologies

 

Reply via email to