"Trust the computer industry to shorten 'Year 2000'
to 'Y2K.' It was this kind of thinking that caused the problem in the first place."
Tony Poldrugovac
"Things will not break down all at once in early January
[2000] unless the power grid goes down and stays down. But the domino
effect will create ever-increasing institutional noise and confusion
throughout January and beyond. Your check will not be in the mail."
Gary North, Christian Reconstructionalist 1. Extracted from his web site on 2000-DEC-30!
There was not a single 2K problem.
There were many:
Thousands of computer programs failed on 2000-JAN-1, but the
effect was minor:
Almost all of the software failures and disruptions materialized in
aged accounting software used by countless small businesses. Very few major
failures were reported:
A programming bug was reported in Britain near the end of 1999-DEC.
Bank computers started to reject credit card purchases. Their program
not only checked that the credit card was valid; it checked whether
the card would also be valid a few days in the future. When this day
fell in the year 2000, a Y2K bug sprang to life and rejected cards in
large numbers.
The "Criticall" system in Toronto, ON, Canada, failed on New
Year's day. This monitors hospitals and directs patients in
ambulances to emergency rooms that are not hopelessly
overloaded. It was quickly repaired. In the meantime, a backup
system was used.
There were minor failures in monitoring systems at seven nuclear
generating stations in the U.S. None represented a safety problem or
caused interruptions of power.
There were a few control problems at some airports which were fixed
quickly.
Data from a U.S. defense department satellite was unusable for a few
hours in the morning of JAN-1; a backup system took over until the
system could be reprogrammed.
According to the Church of Jesus Christ of Latter-day Saints,
the LDS Church, some minor problems were reported in parts of
Russia's telephone system.
A computer system in South Korea issued court summonses to 170
people to appear for trial on 1900-JAN-4...or else!
A TV weather map in France showed the year as 19100.
A control system at a power plant in the U.S. Midwest jumped ahead
35 days. However, the electrical supply was not affected.
Failures occurred for one of two reasons:
In the early days of business computing, many programmers did not
see too far into the future, and took shortcuts:
In those days, disk and memory space were costly, and so many
programmers used only 2 digits to record the year. For example,
they used 72 represented 1972. The problem is for 2000-JAN-01
and later dates, many of these programs would have decoded the new year as
1900.
Other programmers used the year 00 or 99 to indicate an error
condition. They did not expect their programs to last until 1999
or 2000
Other programs stored the year unambiguously, but then
interpreted the year as if it occurred in the 20th century. So,
1972 was stored properly, but only the 72 was interpreted by the
program, which added a 19 prefix. In the year 2000, such programs
might have continue to add the prefix, resulting in the year 1900.
Still other programs will produce unpredictable results.
2,3
All of these deficiencies would have caused major chaos. However
most programs were either fixed or replaced before a Y2K bug surfaced.
As a convenience for persons entering dates form a keyboard,
programs were frequently written to accept only two digits for the
year. The program then added "19" as a prefix to the entered
date to generate a full 4 digit year. When these programs are run
during the year 2000, the operators will enter "00" for the
year and the program will add the "19" prefix to produce the
year "1900". One example is Windows 98. The Date tab in
"Regional Settings Properties (accessible from Start,
Settings, Control Panel) gives two dates, typically 1930 and 2029.
When a 2 digit number (e.g. 99) is entered, the system interprets the
date as being between these years -- i.e. 1999. Unless these settings are changed,
a "30" year which may be intended to represent 2030 will be
interpreted as 1930.
The American National Standards manual states: "2.3: Year
shall be represented as four digits with the option of omitting the two high order digits
(commonly referred to as century) as required in applications where century is to be
implied." Unfortunately, too many computer programmers felt that
it was safe to imply "19" as the century. They expected their
programs to be long gone by 2000. Many of these legacy programs are still
functioning on computers around the world.
Many companies neatly sidestepped the problem by upgrading their
accounting and process control software to entirely new standard programs
that are free of the Y2K bug. "Cynics claim the
millennium bug scare is being spread by certain computer supply firms which will earn huge
sums by selling pricey equipment they maintain is necessary to alleviate the problem."4
Others have mounted massive projects to have programmers scan their
software - some of it decades old - and correct any problems.
Date notations will cause confusion:
Traditionally, people have used two digits to represent years. Three
all-numerical methods are now in common use. February 15, 1999 in various
countries, is shown as:
mm/dd/yy (2/15/99) This is a common notation in the U.S.
dd/mm/yy (15/2/99) This is a common notation in Canada.
yy/mm/dd (99/2/15) This is common internationally.
We play it safe on this website by defining dates like 2000-FEB-15. No
ambiguity is possible. However, it is not very efficient either.
For years, there has been a confusion between the first two notations.
People are unsure whether the first number refers to the month or the day.
In the year 2000, there should be no more confusion than normal, because the
year will be clearly identified as "00". Unfortunately, starting
in 2001, years will be shown as 01 for 2001, 02 for 2002, etc. Much
confusion will be created. For example, consider 01 02 03. Does it mean
January 02, 2003 or 01 February, 2003 or 2001 February 03? This problem will
continue, in diminished form, until the year 2032. This is one of the
reasons why this web site always uses the unusual convention of a 4 digit
year, three letter month and two number day. (e.g.
1999-JAN-15) . This format, and the similar all numeric version (e.g.
1999-02-15), are clear and unambiguous. They are commonly used outside of
North America. The latter, all numeric, format is ideal for computers,
because it can be followed with the time of day, and facilitate
chronological sorting, as in: 2001-01-15 12:34:56.78
Personal Y2K problems:
Although the average house probably has dozens of microcomputers imbedded in
various appliances, few keep track of the year, and thus did not fail at the
start of the year 2000. One exception might have been those computers in
some cars that keep track of the date of the next maintenance check. However,
the media did not report any failures. Some older digital watches and video
cameras may have needed their dates reset. Personal computers are a different
matter. New versions of programs that are Y2K compliant, and programs that check
PC compliance were made available. 5
A minor nuisance was experienced by many users of old versions of Web
browsers. They received a scary notice after 1999-DEC-31 that told them
that the certificate authority that identifies the site for encryption purposes
has expired. The browser worked as before. However, the same notice reappeared
until the browser was updated. Although updates are free, they took hours to
download over the Internet via a slow modem.
Many small businesses suffered a failure in their accounting and billing
software. No programs at North American banks are known to have failed. ATMs/ABMs
continued to work without a hitch.
Many North Americans kept hard copies of their bank and business
transactions, investments, payments, bills etc. just in case. The U.S.
federal government set up a consumer hotline at 1-888-USA-4-Y2K and a web site at http://www.y2k.gov. Micro Support Bureau
had an online list
of "software to check/fix/report on Y2K issues" on your PC.
6 Microsoft had a web site to help people update
their Microsoft products to be year 2000 compatible. 7
Sponsored link:
Maternity ward overload:
Many couples attempted to have
a "millennium baby" by conceiving on or about 1999-APR-9. BabyCenter.com
sold a Millennium Conception Kit to increase couple's chances of having a
baby delivered on New Years Eve. 8This probably caused
overload of artificial insemination clinics in early April, and mass confusion in
maternity wards during late December 1999 and early 2000 as the millennium babies start
arriving in quantity. The chances of delivering a baby on the nominal delivery date is
slim. The chances of expecting a Caesarean section or induced delivery on that date is
also remote. 2000-JAN-1 was both a holiday and a Saturday. Physicians normally do not
schedule Caesareans and inductions for either holidays or weekends because of reduced
staffing at hospitals. On the other hand, some couples avoided conception in 1999-APR
because they are concerned that there might be failure of hospital diagnostic and
monitoring equipment on New years Day - perhaps even a failure of the hospital's entire
electrical supply -- fears that never materialized.
Some media outlets joined the race. Yorkshire Television
in England broadcasted Birth Race 2000; it followed couples trying to
create millennium babies from conception to birth. A radio station in Auckland NZ
searched for 100 "loving couples." They planned to pay for a hotel room for each
of them on APR-9 to encourage them to conceive a millennial baby.
The real millennium ends on 2000-DEC-31. However, there was little
millennium madness as this date approached
Computer program failures on specific dates:
There were some dates on
which special problems were expected to occur. A technology consulting firm, the Gartner Group,
9predicted that only 8% of the Y2K problems will actually
happen on 2000-JAN-1. They further estimated that 58% of the potential millennium bugs
would have been activated on dates prior to 1999-MAR. Some critical dates were/are:
Prior to 1999: Credit card renewals prior to the
year 2000 were prone to failure. This is because the cards' expiry dates
were been in the year 2000 and beyond. This
problem was presumably solved in time; we have not heard of any banks going out of business
or not being able to issue credit cards to their customers.
1999-JAN-01: Some old computer programs reserved the number
"99" for some special use - for example as an error code. As expected, this
caused problems in a number of computer programs in early 1999. However, they were
apparently minor as we could find only three significant failures reported in the media:
Immigration officers at three Swedish airports had failures in computer programs that
issue immediate, temporary passports to last-minute or forgetful travelers. Technicians
were able to fix the problem easily in a few hours.
Taxi meters in Singapore allegedly failed for two hours in the middle of New Years Day.
Two computer-operated medical devices partially failed. A defibrillator manufactured by Hewlett-Packard
and a patient monitor sold by Invito Research Inc failed to display the correct
date and time. Their other functions were unaffected.
1999-FEB-4 & 5: Many airline reservation systems can handle flights
up to 330 or 331 days in advance. On these dates in 1999-FEB, people
were able to make reservations
for 2000-JAN-01 flights. The over 100,000 travel agencies worldwide book about 80% of their
reservations through only a handful of computer reservation systems (CRS):
Sabre, Galileo,
Amadeus, WorldSpan are the largest. These systems passed the critical days relatively
uneventfully. The small percentage of travel agencies which were not Y2K compliant had
their reservation requests for the year 2000 rejected.
1999-MAR-01, JUL-01, OCT-01...: These are commonly used beginnings of
fiscal years of many businesses. Since their fiscal year ended in the year 2000,
there was some fear that program failures may occur. 46 state
governments in the U.S. started fiscal years on JUL-1 without major
problems. No problems were reported.
1999-APR-9: This was the 99th day of 1999. Unfortunately, 99 is
sometimes used inside computer programs as an "end of file"
(EOF)
marker. This date was chosen by the North American Electric Reliability Council
(NERC) to
test the preparedness of all of the electrical utilities in the U.S. and Canada.
Again, no failures seemed to have surfaced.
1999-SEP-09: Thisday may be expressed as 9/9/99 or
99/9/9. In shorthand, a computer might represent it as 9999. This is another potential EOF
(end of file) marker. NERC choose that date for its second test of the electrical power grid.
Again, the day seems to have passed without any noticeable problems.
2000-JAN-01: This was seen as the "biggie:" the first date with a year
ending in "00." Some computer programs were expected to interpret this as the year 1900.
Others might sense it as an error code. Others might give unpredictable results.
Fortunately, this day fell on a Saturday, so many computer programmers
had two days
to solve the problems before the work week began on Monday. The
downside is that many companies had to pay overtime to their
employees to stand by in case problems develop. It is obvious from media
reports that few problems were encountered.
2000-JAN-03: This is the first working day in the New Year for some
companies; JAN-04 was for others. Only then did some of the Y2K problems become
apparent. They seem to have been quickly solved.
2000-FEB-28: A few programmers believe that century years are not leap
years. Thus, they wrote programs assuming that the year 2000 was not a
leap year. But in the Gregorian calendar system, years which are evenly divisible by 400
are all leap years; this includes the year 1600, 2000, 2400, etc. Again,
this produced minimal problems.
2000-OCT-10: This is the first date in this year that requires 8
characters for a full notation (as in 2000 10 10) or 6 characters for an abbreviated
notation (as in 00 10 10).
2001-JAN-01: Since the first year in the Common Era (CE) was the year
1, then the first year of the second century CE was 101 CE. And the first year of the
third millennium or 21st century will be 2001. Thus, 2001-JAN-01 will be the first day of
the next millennium. Of course, many will have already celebrated the event one year
earlier. A survey of readers to the Countdown 2000 web site in 1999-JAN-09
indicated that 36% regarded 2000-JAN-1 to be the beginning of the new millennium; 45%
picked 2001-JAN-1; 20% don't care. 10 It
might be possible for a computer program to contain programming that
would bomb out on this day. However, it is unlikely.
2038-JAN-19: Many computer program written in C++ will fail on this
date at 3:14:07 GMT. Those programs that use the "signed 32 bit longinteger"
time keeping functions of C/C++ keep time by computing the number of seconds since
1970-JAN-1 at 00:00 GMT. In 2038-JAN-19, they will reach 2,147,483,647 which is the
largest number that the program can store. Later dates/times will be
expressed in negative integers which are reserved for error codes. The
results are unpredictable.
Other dates: Many specialty programs have their own system of
time keeping. They typically measure the number of seconds, or
milliseconds or deciseconds after a specific date and time. Eventually,
these systems will reach their limit in the same way as the C++ programs
will. Each system has its own unique termination date.
Fear of the millennium: from business sources:
There are many indicators that North Americans were concerned about the Y2K problem:
TheInformation Technology Association of America (ITTA)
commissioned a public opinion poll in mid-1998. 23% Americans believed that the Y2K
problem could adversely affect them directly.11 54% were
worried that they could lose their jobs.
About 75% of the attendees at the 1998 World Congress on Information Technology said
that their governments were not doing enough to address the Y2K problem.
Some market analysts expected a major downturn in the stock market as the end of 1999
approached. Although the market has traditionally been more sensitive to uncertainty than it is to
bad news, and although the effects of the
Y2K problem were uncertain as the end of 1999-DEC approached, the markets
did not appear to be adversely effected.
In early 1999, rumors spread that disaster would happen to the stock markets when the
Dow Jones index reached 10,000. Some predicted that, for example, when the index reached 10,001,
that automatic selling programs would accept only the first 4 digits, and
interpret the value as 1000; others said that they would only accept the last
4 digits and believe that the index had sunk to 1. Either bug would trigger massive
selling. The Dow Jones oscillated above and below 10,000 in early 1999, without any
problems.
Class solutions, "What is the Year 2000 problem and how does it affect
VB?" at: http://www.class-solutions.com/whatis.htm
The first half of this well written article describes the Y2K problem clearly and
completely. The second part relates to Visual Basic programs.