Excel incorrectly assumes that the year 1900 is a leap year

(learn.microsoft.com)

56 points | by susam 2 hours ago

7 comments

  • nippoo 2 hours ago
    In other "incorrect calendars" bugs, there's the Rockchip RK808 RTC, where the engineers thought that November had 31 days, needing a Linux kernel patch to this day that translates between Gregorian and Rockchip calendars (which are gradually diverging over time).

    Also one of my favourite kernel patch messages: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin....

    • tom_alexander 1 hour ago
      My favorite: For one day all the Microsoft Zunes froze for the entire day, only to recover on their own 24 hours later when the infinite loop in their leap year code had finally resolved: https://web.archive.org/web/20090313105752/http://www.zunebo...
    • gerdesj 2 hours ago
      To be fair, that's nowhere near as daft as september, october, november, december. Latin for seven, eight, nine, and ten is: septem, octem, novem, decem. Those are the nineth, 10th, 11th and 12th months.

      Edit: Whoops, correct eng -> latin nums

      • emmelaich 2 hours ago
        You may know this but originally they were 'correct' because the start of the year was March.
        • teraflop 1 hour ago
          Which wouldn't be that weird, except that the earliest Roman calendar started in March and ended in December, having only 10 months!

          The Romans were of course well aware that this left a gap of about two months between the end of one year in December, and the beginning of the next year in March. But they just didn't bother counting this period as part of the calendar year. Presumably because there was no agricultural reason to need accurate dates during winter.

          • shakna 31 minutes ago
            Numa did try to name and consolidate the winter months, but it wasn't very popular.

            The months were for productive seasons, winter for everything else.

      • caminante 36 minutes ago
        No? How is it octem and not octo? Does the flat bar accent do something?

        >The Latin word for "eight" is octō. [0]

        [0] asked google

      • _kst_ 31 minutes ago
        "I hate that SEPTember OCTOber NOVember and DECember aren't the7th, 8th, 9th, and 10th months."

        "Whoever f---ed this up should be stabbed."

        "I have excellent news for you."

  • stainlu 2 minutes ago
    The story behind this is one of the best backward compatibility parables in computing. Lotus 1-2-3 originally made the mistake, and when Microsoft built Excel they deliberately reproduced it so that Lotus spreadsheets would import with correct dates. Fixing it now would silently shift every date serial number in every saved spreadsheet by one day -- and you can't safely make that change because you don't know how many downstream systems depend on those serial numbers being exactly what they are.

    It's the same pattern that keeps x86 booting in real mode, keeps JavaScript's == doing type coercion, and keeps POSIX using null-terminated strings. Once a bug lives in enough production systems, it stops being a bug and becomes an interface contract. The cost of correctness exceeds the cost of the error, so the error becomes the standard.

  • scrlk 2 hours ago
    An interesting read related to this bug from Joel Spolsky - My First BillG Review: https://www.joelonsoftware.com/2006/06/16/my-first-billg-rev...
  • darknavi 2 hours ago
    > Applies to: Microsoft Excel for Mac 2011, Excel for Microsoft 365 for Mac, Microsoft Office Excel 2003, Microsoft Office Excel 2007, Excel 2010, Excel 2013, Excel 2016
    • etothepii 2 hours ago
      This will never stop as it would require either the reference date to be changed or fir all dates in all saved spreadsheets to be off by one.
      • gpm 56 minutes ago
        Or... A version number that tells excel which convention to use?

        I suppose that would make copy and pasting formulas between spreadsheets very mildly error prone though, so it probably won't happen.

    • parenthesis 2 hours ago
      What about Microsoft 366?
      • a012 1 hour ago
        Although it is technically possible to correct this behavior so that current versions of Microsoft Copilot 366 is a leap year, the disadvantages of doing so outweigh the advantages.
  • ComputerGuru 7 minutes ago
    This obligates me to share this absolute gem of date/time history folklore: https://neosmart.net/forums/threads/an-extended-history-of-t...
  • shablulman 2 hours ago
    [dead]