The Year 2000 problem (also known as the Y2K problem, the Millennium bug, the Y2K bug, or simply Y2K) was a problem for both digital (computer-related) and non-digital documentation and data storage situations which resulted from the practice of abbreviating a four-digit(2000) year to two digits(00).
Y2K was the common abbreviation for the year 2000 software problem. The abbreviation combines the letter Y for “year”, and k for the SI unit prefix kilo meaning 1000; hence, 2K signifies 2000. It was also named the Millennium Bug because it was associated with the popular (rather than literal) roll-over of the millennium, despite the fact that the problem could have occurred at the end of any ordinary century.
Many computer programs stored years with only two decimal digits; for example, 1980 would be stored as 80. Some such programs could not distinguish between the year 2000 and the year 1900. This could cause a complete failure and cause date comparisons to produce incorrect results. Some embedded systems, making use of similar date logic, were expected to fail and cause utilities and other crucial infrastructure to fail.
Special committees were set up by governments to monitor remedial work and contingency planning, particularly by crucial infrastructures such as telecommunications, utilities and the like, to ensure that the most critical services had fixed their own problems and were prepared for problems with others
Date bugs similar to Y2K
- 9 September 1999
- Even before 1 January 2000 arrived, there were also some worries about 9 September 1999 (albeit lesser compared to those generated by Y2K). Because this date could also be written in the numeric format 9/9/99, it could have conflicted with the date value 9999, frequently used to specify an unknown date. It was thus possible that database programs might act on the records containing unknown dates on that day. Somewhat similar to this is the end-of-file code 9999, used in older programming languages. While fears arose that some programs might unexpectedly terminate on that date, the bug was more likely to confuse computer operators than machines.
- Leap years
- Mostly, a year is a leap year if it is evenly divisible by four. A year divisible by 100, however, is not a leap year on the Gregorian calendar unless it is also divisible by 400. For example, 1600 was a leap year, but 1700, 1800 and 1900 were not. Some programs may have relied on the oversimplified rule that a year divisible by four is a leap year. This method works fine for the year 2000 (because it is a leap year), and will not become a problem until 2100, when older legacy programs will likely have long since been replaced. Other programs contained incorrect leap year logic, assuming for instance that no year divisible by 100 could be a leap year. An assessment of this leap year problem including a number of real life code fragments appeared in 1998.
- Year 2038 problem
- The original UNIX timestamp (time_t) stores a date and time as a signed 32-bit integer representing the number of seconds since January 1, 1970. During and after 2038, this number will exceed 231 − 1, the largest number representable by a signed 32-bit integer, causing the Year 2038 problem (also known as Unix Millennium bug, or Y2K38). To solve this problem, many systems and languages have switched to a 64-bit timestamp, or supplied alternatives which are 64-bit.
Documented errors Before 2000
On 28 December 1999, 10,000 card swipe machines issued by HSBC and manufactured by Racal stopped processing credit and debit card transactions. The stores relied on paper transactions until the machines started working again on 1 January.
Reported problems include:
- In Sheffield, United Kingdom, incorrect Down’s syndrome test results were sent to 154 pregnant women and two abortions were carried out as a direct result of a Y2K bug. Four Down’s syndrome babies were also born to mothers who had been told they were in the low-risk group.
- In Ishikawa, Japan, radiation-monitoring equipment failed at midnight; however, officials stated there was no risk to the public.
- In Onagawa, Japan, an alarm sounded at a nuclear power plant at two minutes after midnight.
- In Japan, at two minutes past midnight, Osaka Media Port, a telecommunications carrier, found errors in the date management part of the company’s network. The problem was fixed by 02:43 and no services were disrupted.
- In Japan, NTT Mobile Communications Network (NTT DoCoMo), Japan’s largest cellular operator, reported on 1 January 2000, that some models of mobile telephones were deleting new messages received, rather than the older messages, as the memory filled up.
- In Australia, bus-ticket-validation machines in two states failed to operate.
- In the United States, 150 slot machines at race tracks in Delaware stopped working.
- In the United States, the U.S. Naval Observatory, which runs the master clock that keeps the country’s official time, gave the date on its website as Jan. 1, 19100.
- In France, the national weather forecasting service, Meteo France, said a Y2K bug made the date on a webpage show a map with Saturday’s weather forecast as “01/01/19100”. This also occurred on other websites, including att.net, at the time a general-purpose portal site primarily for AT&T WorldNet customers in the United States.