19 January 2007

Time Jumps When Microsoft Snaps Its Fingers

I missed this the first time around:

So, for most of the world, the Gregorian calendar has been the law for 250-425 years. That's a well-established standard by anyone's definition. Who would possibly ignore it or get it wrong at this point?

If you guessed “Microsoft”, you may advance to the head of the class.

Datetimes in Excel are represented as date serial numbers, where dates are counted from an origin, sometimes called an epoch, of January 1st, 1900. The problem is that from the earliest implementations Excel got it wrong. It thinks that 1900 was a leap year, when clearly it isn't, under Gregorian rules since it is not divisible by 400. This error causes functions like the WEEKDAY() spreadsheet function to return incorrect values in some cases.

Here are Rob's updated thoughts on the subject, and how the problem is being propagated by Microsoft's rival to ODF, OOXML.


Jonathan Allen said...

No, Lotus 1-2-3 got it wrong. Excel just had to live with that legacy.

Glyn Moody said...

Really? Thanks for the info.