Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

A Brief History of Datetime


Jul03: The New Adventures of Verity Stob

Verity is the pseudonym of a programmer based in the UK. She can be contacted at [email protected].


23rd October 4004 BC. Beginning of the world as calculated by James Ussher (1581-1656), Archbishop of Armagh, Primate of All Ireland, and Vice-Chancellor of Trinity College Dublin. Ussher also calculated the dates of various other biblical events, noting that Noah's Ark was grounded on Mount Ararat 'on a Wednesday.' Quite.

4 B[efore] C[hrist]. Birth of Christ, according to current best estimates. The start of the Christian era was devised in AD 532 by the merrily monikered Dennis the Little (who sounds more impressive in Latin—but what doesn't?). Sadly, he got the date of the accession of Augustus wrong, and this threw out all his calculations. Dennis's system was later popularised by another brilliantly named Christian calendar geek, the Venerable Bede. Venerable (pardon the familiarity) also devised the BC system of back counting, which brings us to...

AD 0. Although, in my experience, quite frequently referred to and representable by date/time data structures, this date doesn't exist. The calendar is deemed to have gone from 1 BC to AD 1 without passing zero and collecting $200. Astronomers cheat, dubbing 1 BC as '0,' 2 BC as '-1,' and so on. Sadly, this stands 1 BC chance of general adoption. One could perhaps get used to Julius Caesar invading in -54, but what about that caveperson dinosaur film, which must be retitled Minus Nine Hundred and Ninety-Nine Thousand, Nine Hundred and Ninety-Nine Years? (NB: It is established journalistic practice, which Google will confirm, never to mention this flick without using the phrase 'fur bikini.' I notice I have conformed despite myself.)

16th July 632. Start of the Islamic era. This uses a lunar calendar and is deemed too hard for this article. It proxies for all the myriad other calendars I am ignoring, except for...

22nd September 1792. Start of the ten-fixated French Republican calendar, featuring 30-day months, 10-day weeks, 10-hour days, 100-minute hours, and 100-second minutes. The proposer of this system, one Fabre d'Eglantine, fell victim to the Terror and was guillotined (decimated?) in 1794. His system petered out in 1806.

22nd October 1844. End of the world, as predicted by William Miller, founder of the Millerite sect.

AD 1856. Birth of William Willett. 'I take it William Willett did more to give pure enjoyment—both mental and physical—to the people, than all the forces of Parliament, Press, and Pulpit together during the last hundred years,' wrote author and W.W. schoolmate Jerome K. Jerome. Jerome is one of my great heroes—not least for his primitive attempt at a recursive name—but on this issue we diverge violently. Willet was the spod who first championed the Daylight Saving Scheme, dying just before his plan was implemented during World War I. He currently resides in a circle of hell where it is always the last Sunday in October. His diabolical task is to maintain a multitimezone farm of heavily used servers each with a large FAT partition that must be correctly backed up to an NTFS partition, all linked to contradictory primary time sources.

31st December 1899, midnight. (AKA 0:00am of the 0th January 1900.) The start of the COM era, as defined by its datetime format of choice. This curious starting date I believe to have originated with Lotus 1-2-3 (do e if you know better), escaped from there to Excel and thence to universal Softiedom. The date is stored as a count of number of days from the start, with time of day as a fraction. We can reasonably infer that Somebody supposed that 1900 was a leap year. Tut.

Q: What happens if you take a contemporary datetime expressed in this format, and increment it with intervals of one quarter of a microsecond? A: Nothing. You have overtaxed the range of the underlying double floating-point value, and are doomed to stick at that same point in time forever, like a fly in amber or a baddie in a not very good time-travel B-movie.

0th January 1904. Macintosh Excel apparently uses this as its base date, presumably to help fulfill the Mac individuality quotient.

1914. End of the world, as predicted by Taze Russell, founder of the Jehovah's Witnesses.

1st January 1970, midnight. Beginning of the UNIX and time_t era. Somehow, I'm not keen on this typedef and his UNIX library pals. I particularly dislike struct tm and the business of thrusting, via the agency of gmtime(), a notional temporal dipstick into that scary, unsafe-feeling static buffer at the centre of the C library, and pulling it out with something, perhaps recent time, smeared on it.

Also, how do you use time_t—an integer count of seconds—to measure precisely, say, the two-day UTC time period from the beginning of 30th June 1997 to the end of 1st July 1997? This interval lasted exactly 48 hours...and one leap second. In fact, how is one supposed to cope with this in any general-purpose time format? Blaargh.

1972. GMT (stands for Greenwich Mean Time) supplanted by the more precise UTC (doesn't stand for anything at all, owing to English- and French-speakers unable to agree on whether to place the adjectives 'Universal' and Coordinated' before or after the noun 'Time'), a triumph of international cooperation.

1st January 1980. This is the date MS-DOS PCs wake up at when their battery is flat. Looking forward to a decade of shoulder pads and Princess Di, I suppose.

29th July 1999. That old fraud Nostradamus's shot at the apocalypse.

23rd December 2012. Doomsday as predicted by Mayan priests. (A reminder that we are not yet out of the woods.)

19th January 2038 3:14:07AM. It's the end of the road for 32-bit signed time_t. Do you think the businesses of the world have the budget for this one, after the disappointing damp squib of 2000?

AD 2800. This will be a leap year in the Gregorian calendar, but not in the Soviet and Eastern Orthodox calendars (which have been identical up to this point). Just a consumer tip for readers who like to buy their Filofax refills well in advance: Do check you get the right sort.

NB: If you suspect a crib, you are dead right. Many temporal facts in this article were lifted from the excellent Mapping Time, by E.G. Richards, Oxford University Press, ISBN 0-19-286205-7.

DDJ


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.