Re: The Great Year-2000 Hoax!
Posted in 1996
Topics: General Discussion
James Buss wrote: > > Actually, if you set the date to 1/1/2000, everything will probably be > okay. But, try this: > > Set the date for 12/31/1999 and the time for 23:59, then turn off the > computer, and let it sit for a couple minutes. > > Now turn it on, and check the date. Mine said 1/4/1980. > > However, if I left the computer running, the clock would continue to > tick, and the time would be 00:01, 1/1/2000. However, as soon as I > switched off the computer, the date went back to 1/4/1980. > > However, if I set the date for 1/1/2000, and switch off the computer, the > date will still be 1/1/2000 (or 1/2/2000 depending on what the time is). > > Very interesting. > Jim. heh ... I tried the same exact thing on a number of PCs at work about 6 months ago. We had an eclectic mix of older 486's, pentiums, etc. About 75 percent of the PCs exhibited similar problems. From what I saw, it seemed that the PCs with BIOSes (what the hell IS the plural for BIOS? :> ) dated before 1995 failed this test. A few of the PCs failed in an even wierder fashion. Setting the date to 12/31/1999 and time for 23:59 produced 1/1/2079 after rollover. And setting the date to something like 4/4/2011 then rebooting the PC resulted in 4/4/2079! These machines all had the same BIOS version (sorry, it was six months ago and I don't have notes with me so I can't be specific about BIOS versions ) dated 1994 (Award BIOS I believe). What seems to have happened is that this particular BIOS was an "interim" fix for the year 2000 rollover. The manufacturer seems to have added a bit of code that would set a century flag to account for the rollover. The detection part of the process works but the silly thing updates that century flag AFTER the BIOS resets itself to its reference year of 1979! Just for grins, I started running programs on one of the PCs that exhibit this problem with a date of 4/4/2079. About 30 percent of the programs that I ran bombed out. It's my theory that the programs that bombed were coded in C and used the time_t type. Since this represents time as a number of seconds since a reference date ( Jan 1, 1976 I think, sorry been awhile for this as well) and is a long integer, you can only have a valid time until sometime in 2036! Anyway, I had an RS/6000 available at the time but was unable to perform this type of test on it due to the fact that it housed an 80 gigabyte production database at the time. I would be interested to hear if anyone has or will perform similar tests on some of the high end UNIX platforms out there. -------------------------------------------------------------------------------------- Kurt E. Preston CTAC Corp kpreston@radix.net, kpreston@ctacorp.com Beware! Beware! His flashing eyes, his floating hair! ... For he on honeydew hath fed and drunk the milk of Paradise! - Samuel Taylor Colridge --------------------------------------------------------------------------------------