Leap Years and February 29 Date Math

TL;DR: Leap years add February 29 when the year divides by 4 (except century years unless by 400). Date spans crossing leap day gain one calendar day vs same dates in non-leap years; “annual” anniversaries on Feb 29 need explicit fallback rules.

Leap year test in plain language

2024, 2028 leap; 1900 not; 2000 yes. Calculators embed Gregorian rules—users fail typing Feb 29 in 2025 or assuming every four years without century exceptions.

Span length changes

March 1 2023 to March 1 2024 is 366 days in leap path context vs 365 in non-leap year pair—between-dates captures actual count; do not hardcode 365 in scripts.

Birthdays and anniversaries on Feb 29

Non-leap years celebrate Feb 28 or Mar 1 by personal or legal convention—calculator cannot choose; legal documents sometimes specify. Adding one year to Feb 29 2024 may land Feb 28 2025 in software—verify landing date for contracts.

Payroll and interest accrual

Annual salary divided by 365 vs 366 days differs on leap years—finance systems handle; date tools show whether span includes Feb 29.

Adding 365 days across leap boundary

Anchor Mar 1 2024 + 365 days ≠ Mar 1 2025 if path crosses Feb 29—always read computed end date on datecalculators.org instead of assuming same month/day.

Historical date validation

Genealogy or archival work: Feb 29 1900 invalid in Gregorian—reject input, fix source transcription error.

Software QA spot checks

Test triplet: non-leap Feb 28, leap Feb 29, Mar 1 transitions for add-one-day and between-span operations whenever shipping calendar features.

Leap day promotions

“Valid leap day only” offers: between Feb 29 2024 and Mar 1 2024 inclusive/exclusive defines redemption window—document for support tickets.

Planning templates

Reuse last year’s project template dates verbatim fails in leap years—recompute spans, do not copy “day 180 of year” cells.

Remember one rule

When February is in your span, rerun the calculation in-tool—mental 28-day February habit causes most leap mistakes.

Worked example: employee start Feb 29

Start date Feb 29 2024; one-year anniversary HR systems may store Feb 28 2025—between start and anniversary for “days employed” still computable day-accurate; anniversary party date is HR policy.

Adding 365 days from Feb 29 2024 lands Feb 28 2025 on many engines—read landing before promising “same date next year” in offer letter.

Historical genealogy

Ancestor born Feb 29 1896—valid leap; death certificate 1900 serial dates need spreadsheet caution near epoch bugs when cross-checking age at death in days.

Software license annual renewal on leap day

Enterprise license keyed to Feb 29 renewal falls on Feb 28 non-leap in some license servers—verify entitlement end date in portal, not mental anniversary.

SaaS billing spanning Feb 29 in leap year may show 366-day period on invoice—between invoice start and end confirms, reconciles with AR.

Sports and seasons

Olympic cycles 4 years = 1461 days in one leap span—between opening ceremonies dates quadrennial, not 365×4 shorthand.

Leap year in sports leagues

League schedules spanning Feb 29 seasons add one calendar day to total season length vs non-leap—broadcast contracts referencing “365 days exclusivity” need leap-aware between-dates.

Season ticket renewal “same date each year” for Feb 29 holders—vendor letter specifies fallback date; calculator shows landing for each year when simulating add-one-year repeatedly.

Biennial events

Events every two years: between last and next occurrence should be 731 or 732 days depending on leap path—not 365×2 shorthand.

Century year classroom examples

Teachers demonstrating leap rules should use 2000 (leap) vs 1900 (not in Excel bug context) vs 2100 (not leap)—students plug each Feb 29 into calculator to see validation errors on invalid years.

Historical documents referencing “leap day 1896” valid; pretending 1900 had Feb 29 breaks genealogy timelines—fix source transcription before computing age at death in days.

Software engineers: unit test Feb 29 2024, Feb 28 2025, Mar 1 2024 add-one-day paths in CI—leap regressions ship silently otherwise.

Leap day social campaigns

Brands run “once every four years” promos on Feb 29—promo end inclusive/exclusive defines redemption; support team documents mode in macro before tickets arrive.

Employee start dates on Feb 29 affect benefits eligibility screens—HRIS may show Feb 28; day-count tenure for awards still computable from true start when policy defines.

Calendar printers skip Feb 29 on non-leap desk calendars—do not use printed calendar to validate leap math; trust engine on official tool for Feb 29 anchors.

Leap day birthdays choosing Feb 28 celebration in non-leap years: day-count age from birth to party date still uses true birth date in calculator—party date is social, not actuarial.

Cloud credits “valid 365 days” promos add 365 from redemption email date, not purchase date—between today and expiry drives usage sprint for engineering team before credits evaporate.

Solar panel warranty “25 years from installation” add 25 years as calendar-year operation per contract definition—some warranties use month-add annually, verify landing date on certificate PDF against calculator simulation.

Domain name registration multi-year add: registrar displays expiry ISO; between today and expiry for renew-early promo eligibility, not mental “every Jan”.

Feb 29 as an invoice date, not a birthday joke

If a vendor’s contract starts on 29 February 2024 and renews “on the anniversary,” ask whether 2025 lands on 28 February or 1 March. Those two days are different fiscal buckets. Run the same pair on a date tool that actually knows leap years, then paste both results into the SOW footnote. A salesperson saying “end of February” is not a date. End of February is a mood. Invoices want a day.