Here is a message we received last July from a client in U.K. It was the
first time we were asked specific questions about our software (WOMBAT).
It turned out to be irrelevant for us since none of our products use the
date in any fashion. I hope this will be useful for you in showing what
is being asked to software manufacturers like us.
Cheers,
Jean LaRoche
Montreal
----------------- begins here -----------------
Year 2000 Compliance1
(also known as Century Compliance)
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 explicitly2 or by unambiguous algorithms3 or
inferencing
rules4.
Rule 4. Year 2000 must be recognised as a leap year.
These rules are described in detail in Appendix A.
Amplification of Year 2000 Definition and Rules
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, organisations must check, and modify if
necessary,
internally produced equipment and products and similarly check externally
supplied equipment and products with their suppliers. The purpose of
this
document (sic) 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 represent5 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 organisations; e.g.
as defined by the Gregorian calendar.
2.5 No equipment or product shall use particular 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.
General Notes
For Rules 1 and 2 in particular, organisations may wish 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 organisation's
business processes. Tests for specifically critical dates may also be
added
(e.g. for leap years, end of year, etc.). Organisations may wish 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.
1 Extracted from BSI Document DISC PD2000-1
2 Explicit representation e.g. 2024
3 Algorithms e.g. Calculations dependent on fixed dates
such as might be encountered in pensions applications
4 Inferencing rules, such as "49" inferring 1949 or 2049
5 i.e. any calculation between dates and durations, any comparisons of
dates, any conversion between different representations
(including different calendars), searching, sorting, inputting,
outputting of dates, indexing on dates