This document has been made available in electronic format by the International Co-operative Alliance (ICA) 

The Millennium Bug - Understanding the Year 2000 Problem (1998)
 

Dec., 1998
(Source: Co-op Dialogue, Vol. 8, No. 3, Oct.-Dec., 1998, pp. 10-12)
****************************************************************

What it is?
--------------

The Year 2000 problem results from an industry-wide practice of representing years with only two digits instead of four (for example, specifying 96 instead of 1996). When used, these 2-digit year representations can cause the system to interpret the year 00 as 1900 or interpret any 2-digit year (01,02 and so forth) as a 1900s date. Systems that use the last two digits of the year to calculate the day of week will think January 1, 2000 is a Monday (as in January 1, 1900) rather than a Saturday. This miscalculation alone could create huge problems in reservation systems, ticket machines and even bank vaults.

The scope of the year 2000 challenge spans the entire IT industry. The data mismatch can exist in any level of hardware to software from micro-code to application programmes, in files and databases, and might be present on any platform.

The Year 2000 problem is not confined to just computer systems. It may affect elevator controls; household appliances such as VCRs and programmable devices; control system; equipment particularly which are computer controlled; heating, cooling and security systems; telephone calls; driver's licenses; credit cards; automated teller machines, bank vaults; airline flight schedules and railway's reservation system, etc.

In fact, any system or programme (large or small) can be affected if it uses 2-digits for year representation. All hardware which uses 4-digits for year representation will be unaffected by the transition to the year 2000, provided software which controls its operation also use 4-digits format for year representation.

Arithmetic calculation
---------------------------

The arithmetic calculations that operate on dates with 2-digit year representations might have potential exposures. For example, a person with a birthday of 1961-November-10 will be considered to be - 61 years old rather than 39 years old on 2000-November-10 if the years 1961 and 2000 are represented by 61 and 00, respectively (that is 00-61=-61). Generally a programme that is not expecting a signed value, will ignore the sign; thus, in this example, the -61 might be interpreted as the absolute value 61. Not only is the value still incorrect, it is even less detectable than the incorrect -61. Further, if such incorrect data is then stored in a data base, it is considered a data integrity exposure.

Sequence
------------

When only two digits are used to represent a year, programmes that collate year data will sort that data out of sequence in some cases. For example, the year 2000 (if represented as 00) will be ordered prior to the year 1999 (if represented as 99).

Data integrity
-----------------

In programmes, where historical dates are used, all events occurring in, for example, 1800, 1900 and 2000 are not distinguishable when the years are represented by only 2 digits.

Year 2000 problem can also occur where century information is available but lost by improper use of system date services during format conversions such as converting from binary to ASCII.

In addition to the 2-digit problem, the leap year problem also will affect any computer hardware/network. Year 2000 is a leap year which is coming after 400 years.

The software that does not recognise the year 2000 as a leap year will miss the following calculations:

As a result, the software that does not recognise year 2000 as a leap year will handle improperly actual dates , for example this software will miscalculate the interest of loan that span this century and the next.

Application software
--------------------------

This is by far the most difficult problem, most users may confront. Although incorrect or inconsistent assumptions regarding dates are evident throughout all levels of software applications, they exist predominantly in time and date related software and the fact that the year 2000 is a leap year, only complicates the matter.

Personal/Desk Top/Laptop/Note Book Computer (hereafter called PC) hardware issues relate to three areas, the hardware itself, the operating system that controls it and the peripheral that are attached to it. In PCs, there are several places where date related information is either stored or processed and it is the interaction of these areas that can cause problems. As per one of the estimates, 70% of the PCs might need help rolling over to year 2000. Subsequently, each PC contains the following time keeping devices which might not recognise digit 00 indicating year 2000:

The CMOS RTC, which keeps time when the PC is on or off, notes the time, the date and the last two digits of the year. The two digits representing the base century (i.e. 19 for the base century 1900 and 20 for the base century 2000) are stored elsewhere in the CMOS RTC.

The BIOS keeps the time only when the PC is on. Unlike the CMOS RTC, the BIOS is not actually a clock, at least not in the typical sense of the word. When PC is booted, the BIOS retrieves the date of the month, the month and the year from the CMOS RTC and then retrieves the century from the CMOS address. The BIOS combines the dates and translates into the number of days since the PC has base date which is January 1, 1980 for most IBM and IBM compatible PCs. From that point on, the BIOS simply counts the number of seconds that pass. The BIOS does not access the CMOS RTC again until one reboots the PC.

CMOS RTC in each PC will probably roll over smoothly from 99 to 00. The BIOS might also roll over smoothly because it is simply counting seconds and difference between December 31, 1999 - 23:59:59 and January 1, 2000 - 00:00:00 is one tick. In PCs that are Year 2000 ready, the BIOS will record the change in century to CMOs address, where the two digit representing the base century are stored.

In PCs that are not Year 2000 ready, however, the BIOS will not record the change in century to the century location. As a result when one reboots the PCs, the BIOS will retrieve 00 as the year and 10 has two digits representing the base century. When the BIOS appends 19 to 00, the four digits year will appear as 1900. Because 1900 is an out of range year for most PCs, the BIOS will reset the day to January 1, 1980.

There is no single approach to this problem, so making a successful transition to year 2000 can be an involved and lengthy process. Organisations have to work closely with their business partners/solution providers (both hardware and software) to have a broad range of information, products and services that can help to make the system year 2000 ready. The environment at each IT organisation is different from lab test environment. It is, therefore, the responsibility of the IT organisations to validate the year 2000 readiness of the products in their own environment. The general year 2000 readiness plan, however, shall include the following steps:

Assess the Situation
-------------------------

Experts predict that upto 90 per cent of computer systems and computer controlled equipment will be affected by Year 2000 problems. The first step is to determine the extent to which your organisation's hardware, system software and application software are affected. The hardware and software vendors have a number of products, services, resources and support offerings that can help identify year 2000 ready and non-ready equipment and system software, assess the impact of 2-digit dates in your current application, and determine migration paths for non-ready hardware and system software.

Develop a Plan
------------------

Next, you should develop a detailed plan that includes reviewing hardware including embedded chips, sensors, lab and control equipment, system software and application software.

Execute the Plan
---------------------

This step includes installing or migrating to year 2000 ready products and fixing the application you have targeted in the preceding steps. These may be hardware, system software, application software or any combination of these, depending upon platform and present models, versions or releases. A wide range of products and services are available in the market to test and make product year 2000 ready.

Prioritise and assign the responsibility
----------------------------------------------

Prioritise components based on an assessment of criticality of operation. Deal with most important first and assign responsibility for progress on each component. This will be particularly important in large data centres, where several different services are being provided and where common components may slip between the cracks.

Integrate and test the system
-----------------------------------

Once the transition plan has been executed, integration and testing are imperative. Testings should be performed at two levels. First, the individual elements that make up system must be tested to make sure each element functions correctly. Secondly, the total IT environment in an integrated/network environment should be tested to ensure that all the interfaces work properly, including applications that feed data and dates to the system. In a network configuration clock/system timer of server, PCs and other network components should be synchronised.

The Year-2000 problem and our Members
---------------------------------------------------

Most of our member co-operative organisations and their affiliates use computers for their day-to-day operations in all fields, administration, business operations, accounting, etc.

At least a major portion of computer users are either already aware or at least heard about the Year 2000 problem.

The problem may be critical, especially for data base related work and spreadsheets, etc. I am sure some of you have already identified the problems and possible came across with some solutions.

(Editor's Note: - The Year 2000 Problem and our Members
-----------------------------------------------------------------------------

This article by Ms. Sawhney may help the readers/users to understand the problem and she has also charted a Plan of Action to overcome this problem.

It would be advisable that you do the following simple tests now:

If the date reads 4th January 1980, then carry out the Millennium Ready Bench Mark which is set as follows:

(Prior to running any benchmark test, ensure that important data is backed up)

As the Sixth principles of Co-operation is 'Co-operation among Co-operatives', I am sure developed co-operative movements will help less-developed movements in their efforts to overcome the 'Y2K problem.' Wish you all a successful migration to Year 2000!

-Editor)

------------------

* Ms. Sawhney is Chief Manager, Systems at Escorts Group of Companies, Faridabad, India. She has over 25 years experience in IT.