Commented conformity of FlagShip to Year 2000.
 
DISC PD2000-1 A Definition of Year 2000 Conformity Requirements
 

A DEFINITION OF YEAR 2000 CONFORMITY REQUIREMENTS

Introduction

This document addresses what is commonly known as Year 2000 conformity (also sometimes known as century or millennium compliance). It provides a definition of this expression and requirements that must be satisfied in equipment and products which use dates and times.

It has been prepared by British Standards Institution committee BDD/1/-/3 in response to demand from UK industry, commerce and the public sector. It is the result of work from the following bodies whose contributions are gratefully acknowledged: BT, Cap Gemini, CCTA, Coopers & Lybrand, Halberstam Elias, ICL, National Health Service, National Westminster Bank.

BSI-DISC would also like to thank the following organizations for their support and encouragement in the development of this definition: taskforce 2000, Barclays Bank, British Airways, Cambridgeshire County Council, Computer Software Services Association, Department of Health, Ernst & Young, Federation of Small Businesses, IBM, ICI, National Power, Paymaster Agency, Prudential Assurance, Reuters, Tesco Stores.

While every care has been taken in developing this document, the contributing organizations accept no liability for any loss or damage caused, arising directly or indirectly, in connection with reliance on its contents except to the extent that such liability may not be excluded at law. Independent legal advice should be sought by any person or organization intending to enter into a contractual commitment relating to Year 2000 conformity requirements.

This entire document or the definition section may be freely copied provided that the text is reproduced in full, the source acknowledged and the reference number of the document is quoted.


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.

FlagShip: fully conformant. See details below.

Rule 2. Date-based functionality must behave consistently for dates prior to, during and after year 2000.

FlagShip: fully conformant. See details below.

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.

FlagShip: fully conformant. See details below.

Rule 4. Year 2000 must be recognized as a leap year.

FlagShip: fully conformant. The 29-Feb-2000 is a valid date.
 


AMPLIFICATION OF THE 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, organizations 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 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.

FlagShip: fully conformant. The date() function returns the current system date, i.e. it assumes the system returns the correct date even in  year 2000 (as all modern systems do). The internal data storage in FlagShip covers all dates between 1-Jan-0001 to 31-Dec-9999. The variable type DATE or the database field of type DATE covers this full range as well.

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 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".

FlagShip: fully conformant. There are no special flags or special date values -- except if a programmer explicitly sets an "empty" date value, e.g. by ctod("") which is stored as "zero date", i.e. 0-0-0000. All the manipulation of dates (setting, addition, subtraction) cover the full date range supported by FlagShip (1-Jan-0001 to 31-Dec-9999).

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.

FlagShip: fully conformant. This rule applies automatically, when SET CENTURY is set ON (default is OFF), the date is then displayed and entered with all 4-digit years. The use of SET CENTURY depends on the software requirements and the screen design.

(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.

FlagShip: fully conformant. The SET EPOCH command or the corresponding SET() function controls the handling of date values that are given as TWO-digit-year, i.e. without the corresponding century. A programmer need only insert the statement SET EPOCH TO 1951 (or IF YEAR(DATE()) >= 2000 ; SET EPOCH TO 1951 ; ENDIF) at the begin of the application to meet the rule 3.2.b. Starting with the release 4.42.448, the EPOCH is set by default to 1951, so FlagShip automatically meets the year 2000 requirements. For FlagShip releases 4.40 and before, an upgrade to the current release is suggested.

Programmer's Note: in the FlagShip releases 4.42.447 and before, the default EPOCH value is set to 1900 and corresponds to Clipper's behaviour. Starting with release 4.42.448, the default EPOCH value is 1951, but the programmer may reset it at any time (e.g. SET EPOCH TO 1900 to correspond to Clipper's default value).
 

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.


DISC is a part of the British Standards Institution
BSI, 389 Chiswick High Road, London W4 4AL
Tel: 0181 996 9000 
This document updated: Monday, 03-Feb-1997 15:23:02 GMT plaintext version available
Authored by: disc


Note: The red and blue text was inserted into the original, unshortened document by multisoft GmbH <wembaster@multisoft.de>  on 10-Sep-1998 and revised 30-Mar-1999 for reference purposes of FlagShip users. The original text is available on  http://www.compinfo.co.uk/y2k/disc.htm.

Some additional links to Y2K related issues: http://www.firstsql.com/year2000/links.htm, http://pw2.netcom.com/~helliott/00.htm, http://www.itpolicy.gsa.gov/mks/yr2000/contlang.htm

Back to FlagShip home page