Excel day zero (31 December 1899) retrospective computing artifact
- When
- 1899
- Where
- Software convention
- Episodes
- 1
Microsoft Excel treats December 31, 1899, as day zero for date calculations, a convention stemming from a bug in Lotus 1-2-3 that incorrectly identified 1900 as a leap year. This artifact persists in Excel to ensure backward compatibility with legacy spreadsheets, despite the astronomical inaccuracy of the leap year rule.
Episodes
Background and detail
Origin of the Leap Year Bug. Lotus 1-2-3 incorrectly assumes that 1900 is a leap year, violating the standard rule that years divisible by 100 are not leap years unless divisible by 400. This error was deliberately implemented in Lotus 1-2-3 to save computer memory, establishing a flawed baseline for date arithmetic that later software would inherit.
Excel's Bug Compatibility. Microsoft Excel intentionally replicates the Lotus 1-2-3 leap year error to maintain bug compatibility with existing spreadsheets. Consequently, Excel includes February 29, 1900, as a valid date, causing formulas counting days between early 1900 dates to return incorrect results due to the phantom leap day.
Day Zero Convention. Excel supports date years from 1900 to 9999, but allows December 31, 1899, to be entered as 0. This value is displayed as 0-jan-1900, serving as the epoch or day zero for date serial numbers. This convention is a direct consequence of the inherited leap year bug.
Sources
- Microsoft Excel Wikipedia, revision of 2026-08-26
- Lotus 1-2-3 Wikipedia, revision of 2026-07-26
Machine-drafted from the cited Wikipedia passages and checked by a reviewing model, not by a human editor. Every passage cites the revision it was written from; dates and places follow those passages.