Standards Never Die

While graphing the historic flood peaks of the Red River in Fargo, North Dakota (I sure hope their levees hold – Update: They held!), I noticed that Google Docs’ spreadsheet date functions use December 30th, 1899 00:00 midnight as their epoch, or zero point, for date calculations. That’s strange!?  While tantalizingly close to January 1st, 1900 00:00, it misses by two days.  Investigation turns up a series of choices that were made to adhere to old standards instead of pure developer convenience.

The story starts with the Lotus 123 developers’ original choice to represent midnight December 31, 1899 as zero which  made January 1, 1900 very conveniently equal to one.  Very reasonable.  Unfortunately, Lotus 123 also mistakenly assumed that 1900 was a leap year; it’s not.  That means Lotus’ math was off by one for dates from March 1, 1900 onward.  Oops.  Microsoft carried on the error.  Google developer’s appear to have made yet another patch; moving the epoch back by one day aligns the dates from March 1, 1900 and only requires special cases between December 30, 1899 through February 28, 1900.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: