Introduction
To be considered millennium bomb-proof, a computer must have what’s referred to as "Year 2000 Conformity" or "Millennium Compliance". An organization known as DISC – the part of the British Standards Institution responsible for standardization in information and communications technologies – has developed and published a definition of the expression. This it has done with support from major public and private sector organizations – BT, ICL, the NHS, NatWest and Barclays Banks, British Airways, IBM, and the Federation of Small Businesses, to name a few.
The Definition
Year 2000 conformity shall mean that neither performance nor functionality is affected by dates prior to, during and after the year 2000. In particular:
Rule 1. No value for current date will cause any interruption in operation. Rule 2. Date-based functionality must behave consistently for dates prior to, during and after year 2000. Rule 3. In all interfaces and data storage, the century in any date must be specified either explicitly or by unambiguous algorithms or inferencing rules. Rule 4. Year 2000 must be recognised as a leap year.
BSI-DISC PD2000-1: A Definition of Year 2000 Conformity Requirements
General Explanation
Problems can arise from some means of representing dates in computer equipment and products and from date-logic embedded in purchased goods or services, as the year 2000 approaches and during and after that year. As a result, equipment or products, including embedded control logic, may fail completely, malfunction or cause data to be corrupted.
To avoid such problems, organizations must check, and modify if necessary, internally produced equipment and products and similarly check externally supplied equipment and products with their supplier.
The purpose of this web page, is to allow such checks to be made on a basis of common understanding. Where checks are made with external suppliers, care should be taken to distinguish between claims of conformity and the ability to demonstrate conformity.
Rule 1
1.1 | This rule is sometimes known as general integrity. |
1.2 | If this requirement is satisfied, roll-over between all significant time demarcations (e.g. days, months, years, centuries) will be performed correctly. |
1.3 | Current date means today's date as known to the equipment or product. |
Rule 2
2.1 | This rule is sometimes known as date integrity. |
2.2 | This rule means that all equipment and products must calculate, manipulate and represent dates correctly for the purposes for which they were intended. |
2.3 | The meaning of functionality includes both processes and the results of those processes. |
2.4 | If desired, a reference point for date values and calculations may be added by organizations e.g. as defined by the Gregorian calendar. |
2.5 | No equipment or product shall use date values for special meanings; e.g. "99" to signify "no end value" or "end of file", or "00" to mean "not applicable" or "beginning of file". |
Rule 3
3.1 | This rule is sometimes known as explicit/implicit century. | |
3.2 | It covers two general approaches : | |
(a) | explicit representation of the year in dates: e.g. by using four digits or by including a century indicator. In this case, a reference may be inserted (e.g. 4-digit years as allowed by ISO standard 8601:1988) and it may be necessary to allow for exceptions where domain specific standards (e.g. standards relating to Electronic Data Interchange, Automatic Teller Machines or Bankers Automated Clearing Services) should have precedence; | |
(b) | the use of inferencing rules: e.g. two-digit years with a value greater than 50 imply 19xx, those with a value equal to or less than 50 imply 20xx. Rules for century inferencing as a whole, must apply to all contexts in which the date is used, although different inferencing rules may apply to different date sets. |
Rule 4
4.1 | This rule is sometimes known as the leap year rule and is fairly self-explanatory. |
4.2 | Normally, a year which divides by four IS a leap year. |
4.3 | However a year which also divides by 100 IS NOT a leap year. |
4.4 | However a year which divides by 400 IS a leap year. |
4.5 | So whilst 1900 was not and 2100 will not be leap years, 2000 and 4000 will be. |
4.6 | One last thought. Spare a thought for the programmers and testers of the future. In a little over eight thousand and one years, not only will there be a millennium roll-over, but the year date increases by another digit. |
General Notes
For rules 1 and 2 in particular, organizations may with to specify allowable
ranges for values of current date and dates to be manipulated. The ranges may
relate to one or more of the feasible life-span of equipment or products or
the span of dates required to be represented by the organization's business
processes. Tests for specifically critical dates may also be added (e.g. for leap
years, end of year, etc.).
Organizations may with to append additional material in support of local requirements. Where the term century is used, clear distinction should be made between the "value" denoting the century (e.g. 20th) and its representation in dates (e.g. "19xx"); similarly, "21st" and "20xx".
Updated
: Tuesday November 28, 2000 14:54