- 2004.01.15
The resetting of the Mac's system date to 1/1/1904 has been
explained before, even on this site - see for example 1/1/2K Just Another Day for Macs, which
explains that the number of bits in the original Mac dedicated to
counting dates limits the number of individual days that can be counted
- and you have to start counting somewhere.
Also, the reason 1904 was selected is explained clearly in an article by Geoff
Duncan.
Duncan writes, "And as for the year 2040 [when the clock on
pre-PowerPC Macs runs out. ed], there's an interesting explanation
behind Apple's odd expiration date. The original Mac development team
chose midnight, January 1, 1904, as the start of the Mac calendar - in
part because it's mathematically convenient to have a calendar
system start on a leap year [boldface mine], which 1900 was not.
And since the calendar was built to cover approximately 136 years, your
Mac OS won't expire until the start of the year 2040."
Why is it "mathematically convenient"? I suspect it is because the
formula used to convert the number of days since "time zero" in 1904
does so by counting the number of leap years between the current date
and the "time zero" date. This is simply a matter of taking the number
of integer years divided by 4, unless you extend dates to before
1900 - which would require an if-then branch to add a day back in on
that date since 1900 was not a leap year.
In the early days of computing (unlike today) every byte counted
because of limited storage space. For the same reasons that led
Microsoft and many others to use a two-digit year, prompting the whole
Y2K issue, Macintosh programmers decided to start on a date that
eliminated a tiny bit of code.
Well, that explains everything except for one thing. Why wasn't
1900 a leap year? 2000 was a leap year, and if there's a leap year
every 4 years, shouldn't 1900 have been a leap year.
Well, that's a different story.
According to timeanddate.com,
the leap year rules aren't as simple as most people think. Because the
earth's year is not exactly 365.2500 days long, the old Julian calendar
rule of "one leap day every four years" isn't sufficient to keep the
earth's position in its orbit approximately constant for the same date
as the years go by. Without leap years, the calendar will gradually
shift until it's snowing in July in Los Angeles.
An error like this actually prompted a shift of several days in
mid-month both in 1582 and 1782. One day it was September 2, and the
next September 14. You can imagine the confusion that caused - much
greater than a date reset on a Macintosh.
Anyway, next time you're working on a dead Mac and someone asks "Why
1904?" you can respond with a relatively simple answer: "Because there
aren't exactly 365 days in a year."
is a longtime Mac user. He was using digital sensors on Apple II computers in the 1980's and has networked computers in his classroom since before the internet existed. In 2006 he was selected at the California Computer Using Educator's teacher of the year. His students have used NASA space probes and regularly participate in piloting new materials for NASA. He is the author of two books and numerous articles and scientific papers. He currently teaches astronomy and physics in California, where he lives with his twin sons, Jony and Ben.< And there's still a Mac G3 in his classroom which finds occasional use.