**********************************************************************
FTSC                             FIDONET TECHNICAL STANDARDS COMMITTEE
**********************************************************************

Publication:    FSP-1009
Revision:       1
Title:          Year 2000 issues in FTN software
Author:         Michael Hohner, 2:2490/2520.17
Revision Date:  29 December 1997
Expiry Date:    29 December 1999
----------------------------------------------------------------------
Contents:
               1. Introduction
               2. Generating Fidonet timestamps
               3. Interpreting Fidonet timestamps
----------------------------------------------------------------------


Status of this document
-----------------------

 This document is a Fidonet Standards Proposal (FSP).

 This document specifies an optional Fidonet standard protocol for
 the Fidonet community, and requests discussion and suggestions for
 improvements.

 This document is released to the public domain, and may be used,
 copied or modified for any purpose whatever.


Abstract
--------

 The year 2000 causes problems in many computer programs which use
 two-digit year numbers. Current Fidonet software faces the very same
 problems. This FSP specifies procedures which enable FTN software to
 run without problems after the year 2000.


1. Introduction
---------------

 Software using two-digit year numbers may cause problems in the year
 2000. When the year number rolls over from "99" to "00", some
 software may interpret the resulting year number as "1900" instead
 of "2000". Such programs may contain code like this:

    calendar_year = year_number + 1900;  /* wrong! */

 Fidonet software faces the very same problem: the year number in
 packed messages (see FTS-0001) has only two digits. Some programs
 interpreting this number incorrectly may decide that messages from
 the year 1900 are too old and discard them. Other programs probably
 just display a wrong calendar year.

 The long-term solution would be a transition to four-digit year
 numbers. However, this would require new data formats and cause
 every existing software to fail. So a short-term solution is
 required, resulting in only minimal changes in software. This FSP
 contains guidelines for proper year-number interpretation. The
 author encourages all FTN software authors to check their software
 for possible year-2000 problems (and release fixed versions during
 the next three years).


2. Generating Fidonet timestamps
--------------------------------

 This should not cause much headache. However, some software may use
 the following algorithm:

    year_number = calendar_year - 1900  /* wrong! */

 This will result in a three-digit year number in 2000 and lead to
 incorrect Fidonet timestamps.

 One correct algorithm is:

    year_number = calendar_year mod 100  /* correct! */


3. Interpreting Fidonet timestamps
----------------------------------

 We can make use of the fact that Fidonet didn't exist before 1980,
 i.e. no messages were created before 1980. So any year number
 smaller than 80 can't mean "year 19xx", but can only mean "year
 20xx". One algorithm for correct year number interpretation is:

    if year_number < 80 then
       calendar_year = 2000 + year_number
    else
       calendar_year = 1900 + year_number

 Fidonet software should only use the calendar year for further
 processing, not the year number from the timestamp.

 This solution will work until 2080, giving us another 80+ years to
 finally let some innovation happen in Fidonet.


A. Contacting the author
------------------------

 The author may be contacted electronically at the following
 addresses:

 Fidonet:    2:2490/2520.17
 Internet:   [email protected]

 Suggestions, comments and corrections are always welcome.


B. History
----------

 Rev.1, 19971229: Submitted as FSP.


**********************************************************************