Y2K - A Matter of Time
most people know that leap year comes every four years, not quite so many know that we skip them on occasion, and fewer still know about the 400-year rule. Programmers included.
y2k - A Matter of Time: what it's all about, other similar problems
y2k plus 1: aftermath of the problem
y2k in specifications: what's wrong with typical y2k requirements
in the beginning…
When computers first appeared, the cost of both memory and processing power was astronomical by today's standards. The expense was so great that programmers used every trick available to save time and memory. An obvious way was to use only two digits - instead of four - to represent the year. As a result, some computers will think it's 1900 instead of 2000 when the year changes from "99" to "00".
Not only did this save money, but it was a commonly accepted practice in everyday life. We often refer to "the 60's" or "the 20's" without any indication of the century. Most forms that require a date have a blank with the first two digits of the year already in place, e.g., "19__". Programmers and computer owners were aware of the shortcut, but cost was the overriding factor, and anyway, the year 2000 was forty years away (remember that period of time - forty years).
Other well-known date calculation issues have been totally ignored, probably because they don't lend themselves to a cute name like Y2K. One of the most interesting problems has been recognized for years, yet seems to have been overlooked. The Unix operating system and the programming language "C" calculate dates by the number of seconds elapsed since 1 January 1 1970. The time variable will hold only a fixed number of seconds (about 2.1 billion). One second after the variable is full, the system will think it is 1 January 1970 again. This is the same problem we see coming on 1 January 2000.
And when is this problem going to show up? On 19 January 19 2038 - about forty years from now! What are we doing to fix this problem? Not much - after all, it's forty years away! (Sound familiar?)
and even before that…
Our year is based on the time it takes Earth to make one orbit around the sun. Not surprisingly, this period is not a nice round number; it is just over 365-1/4 days. The result is that every four years we pick up another day. Astronomers realized this about 1,000 years ago, but everyone ignored it until 1582, when the Pope proclaimed that 15 October would follow 4 October. Afterwards, a day was added to February every fourth year, creating what we know as leap year.
That was a good start, but a year isn't exactly 365-1/4 days, so we skip leap year every 100 years. Of course, even that isn't quite right, so every 400th year we add it back in. Most people know that leap year comes every four years, not quite so many know that we skip them on occasion, and fewer still know about the 400-year rule. Programmers included.
The result is that we have to worry not only about the year turning from 1999 to 2000, but about the leap year that might not be programmed.
an Apple a day
I know that all of our friends with Apples are getting a big laugh out of this, because Apple computers won't have any trouble going into the next century. But those who are still using their old Macs should know that their clocks are based on the number of seconds elapsed since 1 January 1904, and their date counter will overflow early on the morning of 6 February 2040. Newer models won't fail until 29,940 - long after their owners' biological clocks overflow. (There's that forty years again!)
and if that isn't enough…
We will run out of Social Security numbers about 2050. If the system is still solvent, we could see some interesting effects, like sending checks to dead people or not sending checks to people who are supposed to get them. But then that's already happening, so maybe it's no big deal.
The clocks used in global positioning system (GPS) reset to zero every 1,023 weeks. This isn't a big problem, as long as the programmers designed it in. We'll find out more this August, when the first roll-over occurs.
We will run out of phone numbers about 2025. In the Minneapolis-St. Paul area we recently found out just how much fun it is to have to dial ten-digit numbers for local calls. As soon as the phone companies introduced a new area code they told us we would have to have another one within a few years.
All of these problems can be addressed by adding a single digit to the numbers we now use - or we can look ahead farther than forty years and figure out something that will last for a really long time.
As noted in a previous column (y2k plus 1), the people who will benefit beyond all reason are the attorneys. It's easy to say "they deserved it" when a company gets nailed for something they "should have known", but the sad truth is that we are the ones who will lose, as costs of legal advice and litigation are passed on to us.
For a sobering look at what the costs will be, visit www.year2000.com. Some of the articles were written by consultants who stand to make a lot of money from Y2K, but estimates of a trillion dollars are scary even if they are wrong!
Web site design and content Copyright © 1995-2004 Sheldon Wolfe
Material from CSI Chapter newsletters used with permission.