********************************************************************** 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: miho@osn.de Suggestions, comments and corrections are always welcome. B. History ---------- Rev.1, 19971229: Submitted as FSP. **********************************************************************