Leap years, explained properly
Updated 2026-08-29 ยท about 6 minute read
A calendar has one job: keep the seasons where you left them. It is harder than it looks, because the Earth refuses to orbit the Sun in a whole number of days โ the tropical year runs 365.2422 days, and that stray quarter-day-ish is the villain of this entire story. Everything about leap years, including the strange fact that 1900 wasn't one and 2000 was, follows from chasing that fraction. The leap year checker applies the finished rule to any year; here's where the rule comes from.
The problem: a year isn't 365 days
Run a plain 365-day calendar and you lose 0.2422 days every year โ the calendar finishes early, and the seasons drift late against it. The drift compounds: a quarter day per year is about one month per century. After a few centuries of that, "June" is delivering autumn, harvest festivals miss the harvest, and anyone planning by the calendar is planning wrong. Ancient calendars handled this with ad-hoc inserted months, decided by officials โ a system so abusable that by Julius Caesar's time the Roman calendar had wandered roughly three months from the seasons, partly because inserting a month could extend a favoured politician's term.
The Julian fix, and its slow failure
Caesar's reform (45 BC) replaced discretion with a rule: every fourth year gets an extra day. That models the year as 365.25 days โ close, simple, and wrong by just 0.0078 days per year, about 11 minutes. Eleven minutes sounds ignorable, and for a lifetime it is; but it compounds into a full day roughly every 128 years. By the 1500s the accumulated error had reached ten days: the astronomical spring equinox was arriving around March 11 while the church's calendar insisted on March 21 โ a genuine institutional problem, because the date of Easter hangs on the equinox, as Why Easter is on a different date every year explains. The lesson worth keeping: in calendars, as in compound interest, small rates plus long time equal large consequences.
The Gregorian rule: 4, 100, 400
Pope Gregory XIII's 1582 reform kept Caesar's rule but drilled two exceptions into it:
- Years divisible by 4 are leap yearsโฆ
- except century years (divisible by 100), which are notโฆ
- except centuries divisible by 400, which are again.
So 1900 was not a leap year, 2000 was, and 2100 will not be โ the case that catches both trivia players and, famously, software. The rule removes 3 leap days every 400 years, giving 97 leap years per cycle and an average year of 365.2425 days โ off from the true 365.2422 by only 0.0003, which accumulates to a day in roughly 3,000 years. Someone will eventually need one more correction; nobody alive needs to plan for it. Try the three-step rule on a few years in the checker โ or check which weekday any date fell on with the day-of-week calculator, which has the same rule baked in.
The eleven days that vanished
Fixing the rate was half the reform; the other half was deleting the accumulated error. Catholic countries jumped straight from October 4 to October 15, 1582 โ ten days struck from existence. Protestant and Orthodox countries, unwilling to take calendrical orders from Rome, held out: Britain and its colonies until 1752 (by then owing eleven days โ Wednesday September 2 was followed by Thursday September 14), Russia until 1918, Greece until 1923. The staggered adoption is why historical dates come in "old style" and "new style", why George Washington has two birthdays on record, and why the Orthodox Easter in the Easter article still runs on the old clockwork today.
Born on February 29
About one person in 1,461 is born on a leap day โ a "leapling" with a birthday that exists once every four years (or, across a non-leap century like 2100, once in eight). Law handles it pragmatically: for age-based rights, most jurisdictions roll the birthday to February 28 or March 1 in common years โ the person legally ages regardless of the calendar's gaps. Socially, leaplings get the better deal: a genuine 25th birthday party at age 100 is a strong opening line. The age calculator handles leap-day birthdays correctly, and the date difference tool counts the exact days between any two dates, February 29s included. For the deeper end of time-keeping strangeness โ leap seconds, a different beast entirely, patching the Earth's wobbly rotation rather than its orbit โ Unix time, explained picks up the thread.