Indonesian Political, Business & Finance News

Computer in 2000

Computer in 2000

The article published in The Jakarta Post on May 16, 1995 (page 8) under the title The Achilles heel of computers puzzled me. I would be very grateful if a computer expert, like Mr Zatni Arbi, could comment on it.

The article gloomily predicts that the world's big computer systems would get stuck on Dec. 31, 1999, at midnight because they can't read four digits of a year.

This seems to infer that language like COBOL are much imperfect. Why is it that other languages such as C and the machine language, and possibly others, are able to solve the problem? It is surely possible to modify COBOL to get it to read the first 2 digits of a date. Is it a herculean task?

Meanwhile, I experimented on my own computers and I made some strange discoveries. As everybody knows, when you format a spreadsheet range to date, any number typed in a cell of that range automatically becomes a date. Most spreadsheets let you choose a date format such as dd-mm-yy, dd-mm-yyyy, mm-dd-yy, etc. When I choose a four digit format in, say, Lotus 1-2-3, I can read, if the column width is sufficient, 21-06-1995 or 21-May- 1995.

All date formats are deemed to start on January 1, 1900, which has the numerical value of 1 and increase by 1 every day: 30 is 30-Jan-1900, etc. I typed what I thought was the value for December 31, 1999 and read 01-Jan-2000. The same happened to Quattro but there, 1 becomes 31-Dec-1899! That discrepancy led me to calculate the correct value for December 31, 1999.

A century has, by definition, 100 years of 365 days each, plus the 24 extra February days of the leap years (1904, 1908....1996). Thus the total is 36524 which, in the cases of Lotus and Quattro, becomes 30-Dec-1999. Why? When you enter the number 60, you must get 01-Mar-1900 but, in Lotus, it becomes 29- Feb-1900, which did not exist: centuries are leap years only when divisible by 400, which was not the case in 1900, but will be the case in the year 2000. Correctly, Quattro does not have a February 29, 1900, but it got it right by cheating, i.e. starting the year 1900 with the number 2!

As for Excel, it only shows the last 2 digits of the year but 60 shows 29-Feb-00. 36524 shows 30-Dec-99. Also wrong. Those are IBM compatible programs.

Other systems show similar differences. In one of my oldest Amiga spreadsheets, entering 36524 gives me 31-Dec-99 (only 2 digits there) but, when I add 1, the dates becomes, after increasing the cell width, 01-Jan-100! Maybe the program was not written in machine language. A recent Amiga spreadsheet gives 36524 as 31-Dec-99 but is cheats twice: it shows 29-Feb-00 but, to make the century end well, the number 0 is 01-Jan-00. Like Excel, it shows only 2 digits and I can't tell what happens later.

Mac spreadsheets are as wrong as Lotus. Next century, everything should be back to normal, unless someone decides that February 2000 has only 28 days.

ALEX WOLVESPERGES

Medan, North Sumatra

View JSON | Print