Year 2000 problem

The Year 2000 problem, also known as the Y2K problem, the Millennium bug, Y2K bug, the Y2K glitch, or Y2K, refers to events related to the formatting and storage of calendar data for dates in and after the year 2000. Problems were anticipated, and arose, because many programs represented four-digit years with only the final two digits – making the year 2000 indistinguishable from 1900, and two-digit years from '01 through '31 also being mistaken for days, and '01–'12 mistaken for months in varying date formats. The assumption of a twentieth-century date in such programs could cause various errors, such as the incorrect display of dates and the inaccurate ordering of automated dated records or real-time events.
In 1997, the British Standards Institute (BSI) developed the DISC PD2000-1 technical standard defining "Year 2000 Conformity requirements" as four rules:
It identifies two problems that might exist in written date formats and many computer programs. First, the practice of representing the year with two digits became problematic with logical error(s) arising upon "rollover" from xx99 to xx00. This had caused some date-related processing to operate incorrectly for dates and times on and after 1 January 2000, and on other critical dates which were billed "event horizons". Without corrective action, long-working systems would break down when the "... 97, 98, 99, 00 ..." ascending numbering assumption suddenly became invalid.
Secondly, some programmers had misunderstood the Gregorian calendar rule that states years that are exactly divisible by 100 are not leap years, assuming that the year 2000 would not be a leap year. While this is true, there is an exception that states years divisible by 400 are leap years – thus making 2000 a leap year.
A third problem is much more common: the two-digit year format increases the errors in interpreting any particular date when various order or formats of YY/MM/DD are not clearly specified: as the first 31 years of a century can be mistaken for days, and any of the first 12 years can be mistaken for months. For instance, when exactly are the following examples: 02/03/05, 21/12/22, 07-12-18, 10-11-30?
Correcting all of this, however, was not the largest part of the problem. By 1997, AT&T had estimated that "60% of the time and money needed for its total compliance efforts" would be devoted to testing the source code changes made to address the issue.
Companies and organisations in some countries, but not all, checked, fixed, and upgraded their computer systems to address the anticipated problem. Very few computer failures were reported when the clocks rolled over into 2000.
Background.
Y2K is a numeronym and was the common abbreviation for the year 2000 software problem. The abbreviation combines the letter "Y" for "year", the number 2 and a capitalized version of "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) rollover of the millennium, even though most of the problems could have occurred at the end of "any" century.
"Computerworld"s 1993 three-page "Doomsday 2000" article by Peter de Jager was called "the information-age equivalent of the midnight ride of Paul Revere" by "The New York Times".
The Year 2000 problem was the subject of the early book "Computers in Crisis" by Jerome and Marilyn Murray (Petrocelli, 1984; reissued by McGraw-Hill under the title "The Year 2000 Computing Crisis" in 1996). The first recorded mention of the Year 2000 Problem on a Usenet newsgroup occurred on 18 January 1985 by poster Spencer Bolles.
The acronym Y2K has been attributed to Massachusetts programmer David Eddy in an e-mail sent on 12 June 1995. He later said, "People were calling it CDC (Century Date Change), FADL (Faulty Date Logic). There were other contenders. Y2K just came off my fingertips."
The problem started because on both mainframe computers and later personal computers, storage was expensive, from as low as $10 per kilobyte, to in many cases as much as or even more than US$100 per kilobyte. It was therefore very important for programmers to minimize usage. Since programs could simply prefix "19" to the year of a date, most programs internally used, or stored on disc or tape, data files where the date format was six digits, in the form DDMMYY, DD as two digits for the day, MM as two digits for the month, and YY as two digits for the year. Also used was the shorter YYDDD where DDD was the day number within the year. As space on disc and tape was also expensive, these also saved money by reducing the size of stored data files and databases.
Some programs, when facing two-digit years, could not distinguish between 2000 and 1900. Dire warnings at times were in the mode of:
The Y2K problem is the electronic equivalent of the El Niño and there will be nasty surprises around the globe. "— John Hamre, United States Deputy Secretary of Defense"
Options on the De Jager Year 2000 Index, "the first index enabling investors to manage risk associated with the ... computer problem linked to the year 2000" began trading mid-March 1997.
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. While some commentators and experts argued that the coverage of the problem largely amounted to scaremongering, it was only the safe passing of the main event itself, 1 January 2000, that fully quelled public fears.
Some experts who argued that scaremongering was occurring, such as Ross Anderson, professor of security engineering at the University of Cambridge Computer Laboratory, have since claimed that despite sending out hundreds of press releases about research results suggesting that the problem was not likely to be as big as some had suggested, they were largely ignored by the media. In a similar vein, the Microsoft Press book "Running Office 2000 Professional", published in May 1999, accurately predicted that most personal computer hardware and software would be unaffected by the year 2000 problem. Authors Michael Halvorson and Michael Young characterized most of the worries as popular hysteria, an opinion echoed by Microsoft Corp.
Programming problem.
The practice of using two-digit dates for convenience predates computers, but was never a problem until stored dates were used in calculations.
The need for bit conservation.
In the first half of the 20th century, well before the computer era, years were handwritten, in full without abbreviation or an apostrophe. In fact, cursive forms of the year may have actually looked like this: "...in the year of our Lord, Nineteen Hundred Seventeen." After 1931, it became increasingly common to abbreviate the 4-digit year with the two-digit contraction, including an apostrophe, such as '42, short for 1942. After 1931, it was impossible to mistake a two-digit year for a day of the month. This was the very beginning of the Y2K problem. With this practice, continued into the next century, two-digit year formats can easily be mistaken for a day or month, for the first 31 years of a century.
Business data processing was done using unit record equipment and punched cards, most commonly the 80-column variety employed by IBM, which dominated the industry. Many tricks were used to squeeze needed data into fixed-field 80-character records. Saving two digits for every date field was significant in this effort.
In the 1960s, computer memory and mass storage were scarce and expensive. Early core memory cost one dollar per bit. Popular commercial computers, such as the IBM 1401, shipped with as little as 2 kilobytes of memory. Programs often mimicked card processing techniques. Commercial programming languages of the time, such as COBOL and RPG, processed numbers in their character representations. Over time the punched cards were converted to magnetic tape and then disc files, but the structure of the data usually changed very little. Data was still input using punched cards until the mid-1970s. Machine architectures, programming languages and application designs were evolving rapidly. Neither managers nor programmers of that time expected their programs to remain in use for many decades. The realisation that databases were a new type of program with different characteristics had not yet come.
Early attention.
There were exceptions, of course. The first person known to publicly address this issue was Bob Bemer, who had noticed it in 1958 as a result of work on genealogical software. He spent the next twenty years trying to make programmers, IBM, the government of the United States and the ISO aware of the problem, with little result. This included the recommendation that the COBOL PICTURE clause should be used to specify four digit years for dates.
In the 1980s the brokerage industry began to address this issue, mostly because of bonds with maturity dates beyond the year 2000. By 1987 the New York Stock Exchange had reportedly spent over $20 million, including "a team of 100" programmers on Y2K.
Despite magazine articles on the subject from 1970 onward, the majority of programmers and managers only started recognising Y2K as a looming problem in the mid-1990s, but even then, inertia and complacency caused it to be mostly unresolved until the last few years of the decade. In 1989, Erik Naggum was instrumental in ensuring that internet mail used four digit representations of years by including a strong recommendation to this effect in the internet host requirements document . On April Fools' Day of 1998 some companies set their mainframe computer dates to 2001, so that "the wrong date will be perceived as good fun instead of bad computing" while having a full day of testing.
While using 3 digit years and 3 digit dates within that year was used by some, others chose to use the number of days since a fixed date, such as 1 January 1900. Inaction was not an option, and risked major failure. Embedded systems with similar date logic were expected to malfunction and cause utilities and other crucial infrastructure to fail.
Saving space on stored dates persisted into the Unix era, with most systems representing dates to a single 32-bit word, typically representing dates as elapsed seconds from some fixed date, which causes the similar Y2K38 problem.
Resulting bugs from date programming.
Storage of a combined date and time within a fixed binary field is often considered a solution, but the possibility for software to misinterpret dates remains because such date and time representations must be relative to some known origin. Rollover of such systems is still a problem but can happen at varying dates and can fail in various ways. For example:
Date bugs similar to Y2K.
4 January 1975.
This date overflowed the 12-bit field that had been used in the Decsystem 10 operating systems. There were numerous problems and crashes related to this bug while an alternative format was developed.
9 September 1999.
Even before 1 January 2000 arrived, there were also some worries about 9 September 1999 (albeit less than 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 codice_1, 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. Data entry operators commonly entered 9999 into required fields for an unknown future date, (e.g., a termination date for cable television or telephone service), in order to process computer forms using CICS software. Somewhat similar to this is the end-of-file code codice_1, 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.
Normally, a year is a leap year if it is evenly divisible by four. A year divisible by 100, however, is not a leap year in 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. For information on why century years are treated differently, see Gregorian calendar.
Year 2010 problem.
Some systems had problems once the year rolled over to 2010. This was dubbed by some in the media as the "Y2K+10" or "Y2.01K" problem.
The main source of problems was confusion between hexadecimal number encoding and binary-coded decimal encodings of numbers. Both hexadecimal and BCD encode the numbers 0–9 as 0x0–0x9. But BCD encodes the number 10 as 0x10, whereas hexadecimal encodes the number 10 as 0x0A; 0x10 interpreted as a hexadecimal encoding represents the number 16.
For example, because the SMS protocol uses BCD for dates, some mobile phone software incorrectly reported dates of SMSes as 2016 instead of 2010. Windows Mobile is the first software reported to have been affected by this glitch; in some cases WM6 changes the date of any incoming SMS message sent after 1 January 2010 from the year 2010 to 2016.
Other systems affected include EFTPOS terminals, and the PlayStation 3 (except the Slim model).
The most important occurrences of such a glitch were in Germany, where upwards of 20 million bank cards became unusable, and with Citibank Belgium, whose digipass customer identification chips failed.
Year 2038 problem.
The original Unix time datatype (codice_3) stores a date and time as a signed long integer (on 32-bit systems a 32-bit integer) representing the number of seconds since 1 January 1970. During and after 2038, this number will exceed 2 − 1, the largest number representable by a signed long integer on 32-bit systems, causing the Year 2038 problem (also known as the Unix Millennium bug or Y2K38). As a long integer in 64-bit systems uses 64 bits, the problem does not realistically exist on 64-bit systems that use the LP64 model. The Y2K38 problem has been dealt with on Linux systems with XFS filesystem by rolling out the Linux kernel version 5.10 on 14 December 2020. However, the fix for the timestamps would work only till the year 2486.
Programming solutions.
Several very different approaches were used to solve the Year 2000 problem in legacy systems. Five of them follow:
Documented errors.
On 1 January 2000.
When 1 January 2000 arrived, there were problems generally regarded as minor. Consequences did not always result exactly at midnight. Some programs were not active at that moment and problems would only show up when they were invoked. Not all problems recorded were directly linked to Y2K programming in a causality; minor technological glitches occur on a regular basis.
Reported problems include:
After January 2000.
On 1 March 2000.
Problems were reported on 1 March 2000, which followed Y2K's first Leap Year Day, but these were mostly minor.
On 31 December 2000 or 1 January 2001.
Some software did not correctly recognise 2000 as a leap year, and so worked on the basis of the year having 365 days. On the last day of 2000 (day 366) these systems exhibited various errors. These were generally minor.
Since then.
In addition to the Year 2000 problem, various issues have occurred due to errors involving overflows. A specific issue with time formatting caused the destruction of the NASA "Deep Impact" spacecraft. It tracked time in one-tenth of a second increments, and so was lost on 11 August 2013 at 00:38:49 when its internal clock reached exactly 232 tenths of a seconds since 1 January 2000, the time value being stored in a signed 32-bit integer which overflowed on the date and at the time in question.
Some software used a process called date windowing to fix the issue by interpreting years 00-19 as 2000-2019 and 20-99 as 1920-1999. As a result, a new wave of glitches started appearing in 2020, including parking meters in New York City refusing to accept credit cards, issues with Novitus point of sale units, and some utility companies printing bills listing the year 1920.
Government responses.
Bulgaria.
Although only two digits are allocated for the birth year in the Bulgarian national identification number, the year 1900 problem and subsequently the Y2K problem were addressed by the use of unused values above 12 in the month range. For all persons born before 1900, the month is stored as the calendar month plus 20, and for all persons born after 1999, the month is stored as the calendar month plus 40.
Canada.
Canadian Prime Minister Jean Chrétien's most important cabinet ministers were ordered to remain in Ottawa, Canada's capitol, and gathered at 24 Sussex Drive to watch the clock. 13,000 Canadian troops were also put on standby.
Netherlands.
The Dutch Government promoted Y2K Information Sharing and Analysis Centers (ISACs) to share readiness between industries, without threat of antitrust violations or liability based on information shared.
Norway and Finland.
Norway and Finland changed their national identification number, to indicate the century in which a person was born. In both countries, the birth year was historically indicated by two digits only. This numbering system had already given rise to a similar problem, the "Year 1900 problem", which arose due to problems distinguishing between people born in the 20th and 19th centuries. Y2K fears drew attention to an older issue, while prompting a solution to a new problem. In Finland, the problem was solved by replacing the hyphen ("-") in the number with the letter "A" for people born in the 21st century (for people born before 1900, the sign was already "+"). In Norway, the range of the individual numbers following the birth date was altered from 0–499 to 500–999.
Romania.
Romania also changed its national identification number in response to the Y2K problem, due to the birth year being represented by only two digits. Before 2000, the first digit, which shows the person's gender, was 1 for males and 2 for females. Starting from 1 January 2000, the Romanian national identification number starts with 5 for males and 6 for females.
Uganda.
The Ugandan government responded to the Y2K threat by setting up a Y2K Task Force. In August 1999 an independent international assessment by the World Bank International Y2k Cooperation Centre found that Uganda's website was in the top category as "highly informative". This put Uganda in the "top 20" out of 107 national governments, and on a par with the United States, United Kingdom, Canada, Australia and Japan, and ahead of Germany, Italy, Austria, Switzerland which were rated as only "somewhat informative". The report said that "Countries which disclose more Y2k information will be more likely to maintain public confidence in their own countries and in the international markets."
United Kingdom.
The British government made regular assessments of the progress made by different sectors of business towards becoming Y2K-compliant and there was wide reporting of sectors which were laggards. Companies and institutions were classified according to a traffic light scheme ranging from green "no problems" to red "grave doubts whether the work can be finished in time". Many organisations finished far ahead of the deadline.
United States.
In 1998, the United States government responded to the Y2K threat by passing the Year 2000 Information and Readiness Disclosure Act, by working with private sector counterparts in order to ensure readiness, and by creating internal continuity of operations plans in the event of problems and set limits to certain potential liabilities of companies with respect to disclosures about their Year 2000 program. The effort was coordinated out of the White House by the President's Council on Year 2000 Conversion, headed by John Koskinen. The White House effort was conducted in co-ordination with the then-independent Federal Emergency Management Agency (FEMA), and an interim Critical Infrastructure Protection Group, then in the Department of Justice, now in Homeland Security.
The US government followed a three-part approach to the problem: (1) outreach and advocacy, (2) monitoring and assessment, and (3) contingency planning and regulation.
A feature of US government outreach was Y2K websites including Y2K.GOV, many of which have become inaccessible in the years since 2000. Some of these websites have been archived by the National Archives and Records Administration or the Wayback Machine.
Each federal agency had its own Y2K task force which worked with its private sector counterparts; the FCC had the FCC Year 2000 Task Force.
Most industries had contingency plans that relied upon the internet for backup communications. However, as no federal agency had clear authority with regard to the internet at this time (it had passed from the US Department of Defense to the US National Science Foundation and then to the US Department of Commerce), no agency was assessing the readiness of the internet itself. Therefore, on 30 July 1999, the White House held the White House Internet Y2K Roundtable.
The U.S. government also established the Center for Year 2000 Strategic Stability as a joint operation with the Russian Federation. It was a liaison operation designed to mitigate the possibility of false positive readings in each nation's nuclear attack early warning systems.
International cooperation.
The International Y2K Cooperation Center (IY2KCC) was established at the behest of national Y2K coordinators from over 120 countries when they met at the First Global Meeting of National Y2K Coordinators at the United Nations in December 1988. IY2KCC established an office in Washington, D.C. in March 1999. Funding was provided by the World Bank, and Bruce W. McConnell was appointed as director.
IY2KCC's mission was to "promote increased strategic cooperation and action among governments, peoples, and the private sector to minimize adverse Y2K effects on the global society and economy." Activities of IY2KCC were conducted in six areas:
IY2KCC closed down in March 2000.
Private sector response.
The Y2K issue was a major topic of discussion in the late 1990s and as such showed up in most popular media. A number of "Y2K disaster" books were published such as "Deadline Y2K" by Mark Joseph. Movies such as "Y2K: Year to Kill" capitalised on the currency of Y2K, as did numerous TV shows, comic strips, and computer games.
Fringe group responses.
A variety of fringe groups and individuals such as those within some fundamentalist religious organizations, survivalists, cults, anti-social movements, self-sufficiency enthusiasts, communes and those attracted to conspiracy theories, embraced Y2K as a tool to engender fear and provide a form of evidence for their respective theories. End-of-the-world scenarios and apocalyptic themes were common in their communication.
Interest in the survivalist movement peaked in 1999 in its second wave for that decade, triggered by Y2K fears. In the time before extensive efforts were made to rewrite computer programming codes to mitigate the possible impacts, some writers such as Gary North, Ed Yourdon, James Howard Kunstler, and Ed Yardeni anticipated widespread power outages, food and gasoline shortages, and other emergencies. North and others raised the alarm because they thought Y2K code fixes were not being made quickly enough. While a range of authors responded to this wave of concern, two of the most survival-focused texts to emerge were "Boston on Y2K" (1998) by Kenneth W. Royce, and Mike Oehler's "The Hippy Survival Guide to Y2K".
Y2K was also exploited by some fundamentalist and charismatic Christian leaders throughout the Western world, particularly in North America and Australia. Their promotion of the perceived risks of Y2K was combined with end times thinking and apocalyptic prophecies in an attempt to influence followers. The "New York Times" reported in late 1999, "The Rev. Jerry Falwell suggested that Y2K would be the confirmation of Christian prophecy — God's instrument to shake this nation, to humble this nation. The Y2K crisis might incite a worldwide revival that would lead to the rapture of the church. Along with many survivalists, Mr. Falwell advised stocking up on food and guns". Adherents in these movements were encouraged to engage in food hoarding, take lessons in self-sufficiency, and the more extreme elements planned for a total collapse of modern society. The "Chicago Tribune" reported that some large fundamentalist churches, motivated by Y2K, were the sites for flea market-like sales of paraphernalia designed to help people survive a social order crisis ranging from gold coins to wood-burning stoves. Betsy Hart, writing for the "Deseret News", reported that a lot of the more extreme evangelicals used Y2K to promote a political agenda in which downfall of the government was a desired outcome in order to usher in Christ's reign. She also noted that, "the cold truth is that preaching chaos is profitable and calm doesn't sell many tapes or books" These types of fears and conspiracies were described dramatically by New Zealand-based Christian prophetic author and preacher Barry Smith in his publication, "I Spy with my Little Eye", where he dedicated a whole chapter to Y2K. Some expected, at times through so-called prophecies, that Y2K would be the beginning of a worldwide Christian revival.
It became clear in the aftermath that leaders of these fringe groups had cleverly used fears of apocalyptic outcomes to manipulate followers into dramatic scenes of mass repentance or renewed commitment to their groups, additional giving of funds and more overt commitment to their respective organizations or churches. The "Baltimore Sun" noted this in their article, "Apocalypse Now — Y2K spurs fears", where they reported the increased call for repentance in the populace in order to avoid God's wrath. Christian leader, Col Stringer, in his commentary has published, "Fear-creating writers sold over 45 million books citing every conceivable catastrophe from civil war, planes dropping from the sky to the end of the civilised world as we know it. Reputable preachers were advocating food storage and a "head for the caves" mentality. No banks failed, no planes crashed, no wars or civil war started. And yet not one of these prophets of doom has ever apologised for their scare-mongering tactics." Some prominent North American Christian ministries and leaders generated huge personal and corporate profits through sales of Y2K preparation kits, generators, survival guides, published prophecies and a wide range of other associated merchandise. Christian journalist, Rob Boston, has documented this in his article "False Prophets, Real Profits — Religious Right Leaders' Wild Predictions of Y2K Disaster Didn't Come True, But They Made Money Anyway".
Cost.
The total cost of the work done in preparation for Y2K is estimated at over US$300 billion ($ billion as of January 2018, once inflation is taken into account). IDC calculated that the US spent an estimated $134 billion ($ billion) preparing for Y2K, and another $13 billion ($ billion) fixing problems in 2000 and 2001. Worldwide, $308 billion ($ billion) was estimated to have been spent on Y2K remediation.
Organisation of the remedial work.
The remedial work was driven by customer demand for solutions. Software suppliers, mindful of their potential legal liability, responded with remedial effort. Software subcontractors were required to certify that their software components were free of date-related problems, which drove further work down the supply chain.
By 1999, many corporations required their suppliers to certify, often on their own variation of a basic form, that all of their software is Y2K compliant. Some merely accepted remedial updates and then signed. Many businesses or even whole countries who spent little effort themselves nonetheless suffered only minor problems.
There are two ways to view the events of 2000 from the perspective of its aftermath:
Supporting view.
This view holds that the vast majority of problems had been fixed correctly, and the money was well spent. The situation was essentially one of preemptive alarm. Those who hold this view claim that the lack of problems at the date change reflects the completeness of the project, and that many computer applications would not have continued to function into the 21st century without correction or remediation.
Opposing view.
The contrary view asserts that there were no, or very few, critical problems to begin with. This view also asserts that there would have been only a few minor mistakes and that a "fix on failure" approach would have been the most efficient and cost-effective way to solve these problems as they occurred.
Counterpoint.
A counterpoint to most of the opposing view points above is that Y2K software updates were often sent to all users regardless of their active participation in the remediation.