FA-76948 / Calendar recurrence rules / Member archive
Yearly BYMONTH/BYMONTHDAY with leap-day skipping: interval anchor · case 03
An every-other-year series whose first-year date precedes dtstart runs in the wrong year parity.
Case contract
FREQ=YEARLY on a fixed month and day. Years are dtstart.year + k*interval. A year in which the date does not exist (for example February 29 in a common year) is skipped, never clamped. Gregorian leap years: divisible by 4, except centuries not divisible by 400. Instances before dtstart are dropped and the series ends at until (inclusive). Return ISO dates.
Why this case matters
Recurring calendar series are expanded into concrete instances for display, reminders and conflict checks.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| interval 4 leap-day from 2023 | ["2024-02-29", "2028-02-29", "2032-02-29", "2036-02-29", "2040-02-29"] | [] | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗