Basic Date Compliance

Components

Basic compliance means that software or hardware performs all date operations correctly over the range of dates required for the application of the software. For a system to be compliant, all components must be compliant, including:

  • computer hardware
  • operating systems
  • networking software
  • middleware
  • database software
  • interfaces
  • application software
  • any other components.

Date Operations

Date operations include calculations involving:

  • dates
  • years
  • durations
  • days of the week
  • comparisons and sorting of dates
  • ages.

Data Entry

Date data can be entered into the software in any of several ways:

  • entered by the user
  • obtained from the operating system
  • obtained from the system clock or other hardware device that keeps time
  • obtained from the network
  • obtained from a file or database
  • obtained from an interface to another system.

Examples

Basic compliance focuses on the results produced by the software and does not directly deal with how the implementation yield those results. Specifically, the software should meet these criteria.

  • The software accepts all appropriate dates over the require range.

    Example: DateBench has a defined range of dates from January 1, 1601, through December 31, 3999. DateBench accepts all dates within this range.

  • Any dates outside the required range or any illegal dates are handled as an error.

    Example: DateBench reports an error for any dates outside the specified range. Illegal dates are also reported as an error.

  • The software does not abnormally terminate when handling any date within the required range.

    Example: DateBench does not abnormally terminate when handling any legal date

  • The software recognizes leap years consistent with Date Bench.

    Example: The year 2000 is a leap year. The year 1900 is not a leap year. The software correctly recognizes these.

  • The following date calculations are performed consistently with DateBench:
    • conversion from a Gregorian date to day of the year
    • conversion from day of the year to Gregorian date
    • determination of the day of the week
    • adding or subtracting days to a date
    • subtracting a date from another date.
  • Other date calculations are performed correctly.
  • The software permits entry of four-digit years.

    Example: The user can enter a date like 02/04/2000.

  • If the software permits entry or displays of two-digit years, the implied century is unambiguous.

    Example: If the software displays 02/04/00 as the order date for a part, it is clear from the context that the intended date is 02/04/2000. However, if the date for an antique is 02/04/00, it may be unclear what century is intended.

  • If the software permits entry of two-digit years, it converts the year to a four-digit year with an appropriate century.

    Example: If the user enters 02/04/00 for the order date of a part, the software converts the date to 02/04/2000.

  • If the software orders date information in chronological order, the order is correct.

    Example: If parts have effectivity dates of 03/01/98, 02/06/99, and 01/03/00, then a sorting by effectivity date in descending order should be:

    01/03/00 02/06/99 03/01/98

  • The software uses no valid dates as special flags.

    Example: The software does not use 9/9/99 as a value with special meeting.

  • The software runs with versions of the operating system, network software, other system software, and database management systems that are date compliant.

by William Shaffer