The following is a table of dates, both valid and invalid, that should be tested for. Dates are represented in dd/mm/yyyy format. The reason for testing each date is also given. See also Conformity Rules.
02/11/1997 | Overflow HP/Apollo Domain OS | |
01/01/1998 | To check digits "98". Also to ensure that December 31, 1997 was calculated as the 365th day of 1997. [Found in Y2K patches in mainframes and elsewhere.] | |
31/12/1998 - 01/01/1999 | To check the digits "99". Also to ensure that December 31, 1998 was calculated as the 365th day of 1998. [Found in Y2K patches in mainframes and elsewhere.] | |
01/01/1999 | Introduction of electronic version of the Euro. | |
05/02/1999 | 1st possible airline reservation problems (Max 330-day look-ahead) | |
xx/03/1999 | Securities Industry Association simulates December 29, 1999 trading. | |
Fiscal Year 2000 for Business and Industry | Depending on the business, the fiscal year could start on March 1, 1999, July 1, 1999 or match the government fiscal year of October 1, 1999. | |
01/04/1999 | New York state's fiscal year (FY) 2000 starts, and it is the start of the Canadian and Japanese FYs. | |
06/04/1999 | The start of the U.K. FY 1999-2000 | |
09/04/1999 | A system looking at Short Julian days might stop since this is day 99 of year 99 (9999). | |
01/07/1999 | FY 2000 begins in 46 U.S. states | |
22/08/1999 | Overflow of "end of week" rollovers (e.g., GPS). Unremediated GPS think it's 1980-01-06 | |
01/09/1999 | FY 2000 begins in Texas. | |
09/09/1999 | (9/9/99 or Possibly 9999) To check digits "99" or "9999". | |
23/09/1999 | 99 days to Year 2000 | |
30/09/1999 - 01/10/1999 | This is the last fiscal rollover prior to Y2K [for many including the US Government]. | |
01/10/1999 | First day of fiscal year 2000 [for many including the US Government, and states of Alabama and Michigan]. | |
December 31, 1999 | Last day before 2-digit year equals 00. Many systems will not operate correctly as they transition to the next day. Also, sometimes used as "Never Expires" date (IBM tapes are marked 99365--all could expire today). | |
January 0, 2000 | To ensure this date is NOT processed [some spreadsheets and database applications do have this problem and count January 0 as a day before the 1st]. | |
January 1, 2000 | Key date in any compliance testing | |
January 1, 2000, 1200 Hrs (Noon) | Embedded date chip failure has been found. | |
January 3, 2000 | First full work day in the new year. First possible payday after rollover. | |
January 4, 2000 | First business day of the Year 2000 in the U.K. | |
January 10, 2000 | First 7 or 8 character date in YYYY/M/DD format (2000/1/10 or 2000/01/10) | |
February 28, 2000 | To check leap year is being properly accounted for. Many programmers have incorrectly been taught that the year 2000 is not a leap year -- Year 2000 IS a leap year. Systems should be tested to ensure correct handling of the transition to the 29th day of February 2000. | |
February 29, 2000 | To check leap year is being properly accounted for. Some systems may transition to the 29th of February 2000 correctly, but may not allow the date to be set to the 29th. This would happen if a system was reinitialized after the transition and should be explicitly tested for. | |
February 30, 2000 | To ensure that this date is NOT processed [found in some PC applications] | |
February 31, 2000 | To ensure that this date is NOT processed [found in some PC applications] | |
March 1, 2000 | To ensure date calculations have taken leap year into account | |
April 2, 2000 | First change to Daylight Savings Time after rollover (US) | |
April 15, 2000 | Income Tax day | |
September 30, 2000 to October 1, 2000 | This is the first fiscal rollover following Y2K [for many including the US Government]. | |
October 10, 2000 | First 8 character date using a 2-digit month (2000/10/10) | |
October 29, 2000 | First return to Standard Time after rollover (US) | |
December 31, 2000 | 366th day of the year 2000. This could be a problem for systems that use Short Julian days. | |
January 1, 2001 | First day in the 21st Century. This is the last leap year related date, testing the first day of January 2001 to ensure it can be set. | |
February 29, 2001 | To ensure that this date is NOT processed as a leap year | |
September 9, 2001 | A UNIX date when the time_t value goes from 9 to 10 digits. Suspects are timestamps stored in fixed-column tables and internal variables. | |
After January 1, 2002 | Or any other date past this day, to ensure no processing errors occur in backward calculations and processing of dates in the 1980s and 1990s at this point in time | |
February 29, 2004 | To ensure that this date is processed as a leap year | |
January 1, 2037 | Rollover date for NTP systems | |
January 19, 2038 | Overflow of UNIX systems | |
September 18, 2042 | Overflow of IBM System/360 | |
2072, Exact Date TBD | Overflow of Milstar Operating System | |
February 28, 2100 | Last Day of February - NOT a leap year |
Date To Test | In/Valid | Reason For Test |
00/00/1998 | Invalid | A non-existent date |
01/01/1998 | Valid | First day following a year change |
29/02/1998 | Invalid | Only valid in a leap year |
30/02/1998 | Invalid | A non-existent date |
31/02/1998 | Invalid | A non-existent date |
01/03/1998 | Valid | The day after 28th Feb in a non leap year |
31/04/1998 | Invalid | A non-existent date |
31/06/1998 | Invalid | A non-existent date |
13/08/1998 | Valid | 256th day of the year |
09/09/1998 | Valid | See 09/09/1999 |
31/09/1998 | Invalid | A non-existent date |
10/10/1998 | Valid | First time that date is eight digits long |
31/11/1998 | Invalid | A non-existent date |
31/12/1998 | Valid | 365th day of the year |
00/00/1999 | Invalid | A non-existent date |
01/01/1999 | Valid | First day following a year change |
29/02/1999 | Invalid | Only valid in a leap year |
30/02/1999 | Invalid | A non-existent date |
31/02/1999 | Invalid | A non-existent date |
01/03/1999 | Valid | The day after 28th Feb in a non leap year |
31/04/1999 | Invalid | A non-existent date |
31/06/1999 | Invalid | A non-existent date |
13/08/1999 | Valid | 256th day of the year |
09/09/1999 | Valid | 9/9/99 used as end-of-record marker in old code |
31/09/1999 | Invalid | A non-existent date |
10/10/1999 | Valid | First time that date is eight digits long |
31/11/1999 | Invalid | A non-existent date |
31/12/1999 | Valid | 365th day of the year |
00/00/2000 | Invalid | A non-existent date |
01/01/2000 | Valid | First day following a millennium change |
29/02/2000 | Valid | The leap year day |
30/02/2000 | Invalid | A non-existent date |
31/02/2000 | Invalid | A non-existent date |
01/03/2000 | Valid | The day following the leap year day |
31/04/2000 | Invalid | A non-existent date |
31/06/2000 | Invalid | A non-existent date |
12/08/2000 | Valid | 256th day of the year |
09/09/2000 | Valid | See 09/09/1999 |
31/09/2000 | Invalid | A non-existent date |
10/10/2000 | Valid | First time that date is eight digits long |
31/11/2000 | Invalid | A non-existent date |
31/12/2000 | Valid | 366th day of a leap year (the real extra day). |
00/00/2001 | Invalid | A non-existent date |
01/01/2001 | Valid | First day following a year change |
29/02/2001 | Invalid | Only valid in a leap year |
30/02/2001 | Invalid | A non-existent date |
31/02/2001 | Invalid | A non-existent date |
01/03/2001 | Valid | The day after 28th Feb in a non leap year |
31/04/2001 | Invalid | A non-existent date |
31/06/2001 | Invalid | A non-existent date |
09/09/2001 | Valid | See 09/09/1999 |
31/09/2001 | Invalid | A non-existent date |
10/10/2001 | Valid | First time that date is eight digits long |
31/11/2001 | Invalid | A non-existent date |
31/12/2001 | Valid | 365th day of the year |
Updated
: Tuesday November 28, 2000 14:54