|Academic Computing and Communications Center|
Appendix 1: Dates with Special Importance in Computing
|Dates Before the Year 2000|
January 4, 1980: Day 0 for the DOS operating system. This is the date that
the clocks on most IBM/Intel/Windows personal computers will reset to if they
lose their proper setting.
December 31, 1995: This date was the first of several that were used by some systems to mean "forever". And on the following day, January 1, 1996, some things that were intended to be kept forever actually did expire and were erased. This caused somewhat of a panic, and people began to realize what we were in for.
December 31, 1998: This date has been used by some systems to mean "forever". And on the following day, January 1, 1999, some things that were intended to be kept forever would expire and be erased. These things could be anything from files stored on tape to frozen sperm. Any program of any kind that was set up to recognize 99 as a special value of any kind, as an end-of-file marker for example, will begin to have problems on this date. This has been called "The 99 Problem".
July 1, 1999: The first day of Fiscal Year 2000 for a great many companies and governmental bodies.
September 9, 1999: (9/9/99) Another "99 Problem" date that could have been used in some programs for a special meaning, such as forever.
December 31, 1999: (Also known as "New Year's Evil".) This is another date that has also been used by some systems to mean forever. And on the following day, January 1, 2000, more things that were intended to be kept forever would expire and be erased.
|Dates In the Year 2000|
January 1, 2000: The big
day. The two-digit year rolls over to "00". Count on being at work, even though
this will be a Saturday and a holiday. Expect odd malfunctions ranging from the
amusing to the life threatening. (Although the most of the immediate problems
should fall in the amusing to slightly inconvenient range.) Intel/IBM/Windows
Personal Computers which contain The Tick-Over Bug
will need to be rebooted to have their date manually set to 2000, although once
that's done they should be OK.
February 29, 2000: (A day which will live in infamy, simply because it existed.) The year 2000 is a leap year, a once-in-400-years occurrence. For more information, see Appendix 2: Leap Year Problem.
March 1, 2000: The day after Leap Year Day might produce some additional malfunctions. You will need to check very carefully that this is day number 60 within the year, and that all your programs and systems are aware that it is Wednesday. Any computer or software or program which lists March 1, 2000 as being a Tuesday is defective and should be taken out of service until fixed!
December 31, 2000: This will be the 366th day of the year 2000. There is another leap year exposure here, as defective programs might flag this day as an error if they perform incorrect leap year calculations.
January 2, 2001: This is the first day since 1932 that it will be impossible to determine which element of a date is the year, if the month, date, and year are all two digits. Throughout 2000, the year can always be identified as being "00", since neither the month nor day can be zero. The date "01/01/01" was also unambiguous -- it can only be January 1, 2001. On January 2, 2001, however, expect some programs and human readers to interpret the date as February 1, and others to read it as January 2. Another reason to always use four-digit years! Similar problems may crop up on February 1, 2001.
This date ordering issue is no laughing matter! See ISO 8601: The Right Format for Dates.
|It's Not Enough to Get Through February 29, 2000|
As you go looking for Year 2000 dependencies, you should be on the lookout for things that will have problems after 2000, such as:
September 9, 2001, 01:46:40 UTC: This date is gone now without dire consequences, but the problem is worth keeping in mind. On some systems (including Unix and RISC OS), the number of seconds since the origin began needing 10 decimal digits at this time, which could lead to buffer overflows in badly written software.
January 1, 2028: There seem to be a great many binary date formats which use seven bits for the year number. In 2000, they will show a value of "100" for the year, and as long as all you do to it is to add 1900 to it, you should be OK. However, in 2028, they will wrap back to 0!
February 7, 2036 06:28:16 UTC: The Internet clock, as defined in RFC 1305, wraps to 0. This figure is a 32-bit unsigned integer number of seconds since Midnight, January 1, 1900, UTC.
January 19, 2038 03:14:08 UTC: The UNIX clock wraps to 0. This figure is stored internally as a 32-bit signed integer number of seconds since Midnight, January 1, 1970, UTC. Many UNIX vendors plan to extend their standard integer size to 64 bits well before then, which should reduce the number of systems affected by this problem. (However, that could cause other collateral damage!)
September 17, 2042, 23:53:47 UTC: The IBM Mainframe clock wraps to 0. Work is underway now to expand the number of bits of this clock.
Note: "UTC", or "Universal Time" is the new name for "GMT", or "Greenwich Mean Time". Among other reasons, this new name has been adopted because the town of Greenwich, England goes on Daylight Time in the summer.
This page last updated 1998-09-25. Please send comments and reports of broken links to the author: Roger Deschner
|Using ISO 8601 Dates||Previous: 5. Fix Data/Programs||Next: A2. Leap Years|
|2002-1-9 ACCC Documentation||