Quintus Prolog Homepage WELCOME TO
Quintus Prolog
The Industry Standard
  Quintus Home > Year 2000

Year 2000 and Quintus Prolog

Quintus Prolog Is Year 2000 Compliant.

Products and installations built using Quintus Prolog are year 2000 compliant in so far as their functions use Quintus Prolog.

What Does Year 2000 Compliant Mean?

This explanation is with thanks to our customer ICL.

A typical definition of 2000 compliance requires that a product may only be said to be Year 2000 compliant when it satisfies the following conditions:

  1. It produces expected results when the current date is beyond 31st December 1999.
  2. Date based functionality behaves consistently for dates in all centuries which fall in the range for which the product is designed to handle.
  3. All dates stored by the application or passed across its interfaces must contain an explicit century designation, or be subject to unambiguous century inferencing rules, which apply to all contexts where the date may be processed.

How Does Quintus Prolog Achieve Year 2000 Compliance?

For date dependent functionality Quintus Prolog uses the ANSI defined C stucture tm which is defined thus:

struct tm {
    int tm_sec; /* seconds after the minute - [0,59] */
    int tm_min; /* minutes after the hour - [0,59] */
    int tm_hour; /* hours since midnight - [0,23] */
    int tm_mday; /* day of the month - [1,31] */
    int tm_mon; /* months since January - [0,11] */
    int tm_year; /* years since 1900 */
    int tm_wday; /* days since Sunday - [0,6] */
    int tm_yday; /* days since January 1 - [0,365] */
    int tm_isdst; /* daylight savings time flag */
    };<

The only thing relevant to year 2000 compliance is the tm_year declaration. As the comment shows, this declaration flags the number of years after 1900. So, the year 2001 would have tm_year set to 101 when represented using struct tm (as defined in time.h header file specified in ANSII C standard). The current library functions will return this value representing the number of years after 1900.