DateBench
Capabilities
DateBench(TM) provides an operational definition of Year 2000 Compliance. Because of the Year 2000 crisis, many organizations now want to specify that software handles dates correctly. But what does "handle dates correctly" mean? DateBench provides an answer for at least some date operations.
DateBench consists of several parts described below.
Definition of Year 2000 Compliance
Date compliance can be viewed at three levels:
Basic Compliance
Basic compliance means that software or hardware performs all date operations correctly over the range of dates required for the application of the software.
Implementation Compliance
Implementation compliance means that the software meets the criteria under basic compliance and adheres to implementation criteria below.
Formal Compliance
Formal compliance means that the software conforms to the criteria for implementation compliance and a formal proof exists that the date operations anywhere in the software are equivalent to those in DateBench.
Formal Specification
The specification is written in ML. Although executable, the specification is intended to describe the desired results of the calculation, not necessarily the way the calculation should be done. Therefore, the specification should not be taken as a description of a desired algorithm. In some cases, the specification is an inefficient way of computing the results.
WayDate Source Code
This section contains links to the Java source code for DateBench.
- WayDate
- This class contains several algorithms for date manipulation.
- WayDateException
- Represents information about an illegal date. This is the class of exceptions thrown by WayDate methods.
- Holiday
- This class calculates the dates of federal holidays.
- WayException
- Represent information about an Exception.
- WayString
- A collection of string routines.
- WayUtilException
- Java exceptions.
JavaDoc for the source code is here.
Test Suite
A test suite using JUnit to test the DateBench code.
Java Applets to Check Accuracy
Use the Java applets to check the accuracy of date calculations in other programs.
by William Shaffer


