• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Idea for Programmers - 2019!!!

Scott Baret

Well-known member
As most of us are aware, our old Macs can't be set beyond 2019. Now I'm not going to take this project up myself, as I don't have the time to do the research and programming, but I thought I'd throw this one into the ring for those who enjoy programming and need a Retro Challenge idea.

Basically, we need someone to write a control panel to set the clock to later years. Our Macs can go beyond 2019, so why not do something to make that possible?

 

Anonymous Freak

Well-known member
Or you could just set your clock back to 1992, as that year is the same, calendar-wise, as 2020 - and would gain you another 28 years before you'd have to reset again. (Or even set to 1964 or even 1936, same thing, only longer reset-period.)

That's the joy of the calendar system we use, there are only so many variations possible. (Seven non-leap-year and seven leap-year.) Which means calendars repeat themselves on a 28-year (7*4, the interval between repeating leap years,) basis - the non-leap-years repeat themselves even more often, but leap years are a good basis, because it guarantees you won't accidentally slip in or out of the leap year cycle. Which is why it's a good thing 2020 (a leap year) is the first not-possible year on a Mac. You just have to reset back to an equivalent leap-year calendar.

 

PowerPup

Well-known member
Woah AF, congrats on having your post the first mind-boggling thing I've read in the new year. ;) (I had to re-read it once or twice to get what you were saying. Awesome facts there.)

Found this little page on Apple.com. Turns out that they setup Mac OS to handle a range of only 100 years because System 6 only displayed two digit years. Guess we'll just have to figure out the "Mac OS supplied routine" it mentions. The page also mentions that DOS has a time range of 1980 to 2099.

I was curious to find out what the maximum year for Mac OS X (Unix) is. Turns out that Unix has it's own 2038 "Millennium Bug."

Anyway, this does sound like a good programming challenge. But I'm going to be busy with learning Java and Math this collage quarter. :p So maybe I can take a look during Spring break or Summer even. If someone does takes this project up I'd love to be kept up to date on their progress. ;)

 

ClassicHasClass

Well-known member
The Network Time control panel probably will fix this, if you have an NTP or TIME source.

Otherwise, it's pretty easy to write a simple program to call the Toolbox routine. A couple lines of Modula-2 would do it and run on any classic Mac.

 

redrouteone

Well-known member
...That's the joy of the calendar system we use, there are only so many variations possible. (Seven non-leap-year and seven leap-year.) Which means calendars repeat themselves on a 28-year (7*4, the interval between repeating leap years,)...
My Grandmother (Who grew up in the Great Depression), used to save old calendars. Because they would be good again in 28 years. I found this out when I ask her why she had a calendar from 1958 up in 1986.

I really should write a book with all of the money saving things she would do. There where some really good things and some really funny ones.

 

bbraun

Well-known member
I somehow missed this. FWIW, user adh1197 asked me for this back in February.

Anyway, I hacked up this control panel that works on System 7, but probably not System 6. If there's interest in System 6, I can fix it. adh1197 did the icon.

It looks terrible (I suck at UI), but should be functional. If you are UI inclined, you can tweak the DITL resource using Resedit to make it look a little nicer.

 

TylerEss

Well-known member
What's the max year the Toolbox date and time routines can handle?

I seem to remember something in TidBITS about this, and it's like 25000CE or something crazy like that. Am I just making things up again?

 

bbraun

Well-known member
SetDateTime() takes a 32bit quantity specifying the number of seconds since January 1, 1904. I'll just assume that's 2040 like previously mentioned. :)

That's what this technote seems to say too.

 

TylerEss

Well-known member
Thanks for the link!

I see, now. A LongDateTime goes up to 30,000CE but can only be used for calcuations / application-specific work. The system's conception of date and time is limited to a regular DateTime, which as you said only goes to 2040.

 
Top