|
|
|
|
|
|
|
There are two other basic approaches to Y2K. The first is to expand the two-digit fields to four digits and remove the code that builds a four-digit year from a two-digit core. This is really the preferred solution, since it is the only one that actually eliminates the problem. |
|
|
|
|
|
|
|
|
Unfortunately, this approach has not seen favor, because it is perceived as "too hard." The crux of the problem is the large number of historical files that would have to be converted to the new format. As time for a solution slips away, it becomes even less attractive relative to the bridge, which is perceived as a quick fix. The bridge is actually neither quick nor a fix, but it is what you shall have. |
|
|
|
|
|
|
|
|
The third option attempts to retain the file format in terms of record length but looks for ways to squash a date with a four-digit year into the space allocated for a date with a two-digit year. In some cases, some bit twiddling and compression can accomplish this goal, but it is not a general solution. |
|
|
|
|
|
|
|
|
1.8.4
Other Flavors of Doomsday |
|
|
|
|
|
|
|
|
The general problem of date/time rollover can occur anytime a system is designed with an effective rollover date that can occur within the reasonable expected lifetime of the system. Such a date is known as the system's "Doomsday." Some systems have experienced problems of this sort already. |
|
|
|
|
|
|
|
|
C and C++ programmers should be delighted to know that UNIX keeps date/time as the number of seconds elapsed since 0000 hours UTC, 1 January 1970, as a signed, 32-bit integer. This count therefore overflows at 2,147,483,647 seconds, which occurs on 19 January 2038. All versions of C/C++ use this format for certain library functions. |
|
|
|
|
|
|
|
|
A time-sharing system in the Midwest experienced a Doomsday in 1989. Dates in the file system were stored as 16-bit half-words, representing the number of days since 1 March 1900. The 32Kb value rolled over on 16 November 1989. |
|
|
|
|
|
|
|
|
A large computer manufacturer designed a minicomputer in 1964 with a 12-bit date format, which could not represent dates after 4 January 1975. The problem initiated a DATE75 project, which, significantly, found that problem solution was "considerably more complicated" than anticipated. |
|
|
|
|
|
|
|
|
According to information gleaned from two Internet sites, the Global Positioning System (GPS) software contains a 9-bit field known as the "week number". Week 0 started at midnight on 5 January 1980. Barring patches, rollover will occur after week 1,023, at midnight on 22 August 1999, at which point GPS receivers will believe the date is 6 January 1980. |
|
|
|
|
|
|
|
|
IBM mainframes use a day counter, which should be accurate until A.D. 2055, and a "perpetual minute clock", which contains the number of minutes elapsed in a 32-bit field. This counter should also be fine, unless the field is manipulated in 24-bit mode, in which case Doomsday occurs around December 1997. |
|
|
|
|
|