[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Y2K Problem



>>The product Millennium Solutions from Data Integrity Inc. (DII) has
>figured out that the date problem is a simple
>>addition problem. Example given in the article is a person born in 1902.
>take 1 - 2 = -1, then add 50 to get 49:
>> add 50 again to get 99. The correct answer for a person born in 1902 in
the year 2001 is 99 years old.

There must be more to the program than this if it's going to "solve" the Y2K
problem. Most of the problem is due to the rather short-sighted use of
2-digit years in dates and a "beginning of the universe" date for computers
circa 1970. Until fairly recently, it was reasonable for most programs to
assume that a date of 1/1/01 was January 1, 1901. Specific applications
requiring date manipulations for dates in centuries other than the 20th
century used custom code and date algorithms. This has lead to a problem
somewhat analogous to having many unique reactor designs - there is no
standard way to deal with industry wide problems, repair code must be
developed on a case by case basis. 

I am curious about how this product determines which date 1/1/01 refers to.
The implications in banking, dose calculations (CEDE), etc. can be fairly
significant and tend to creep into perfectly normal looking spreadsheet and
database applications. Many do not break on the year 2000, or even 2020 or
2030. What happens is that the computer decides that a projected date of,
say, 1/1/48 is really 1/1/1948, not 1/1/2048, and an elapsed time value is
corrupted and other calculations based on that date spread the problem
without it being recognized because "it worked for the year 2000 and 2001"
so nobody verifies other dates by hand. To minimize problems, it is
generally necessary to rewrite code to use 4 digit dates or add a century
field to denote which century an existing two-digit date belongs to. This
takes time and money.

BTW - Microsoft's definition of "Y2K compliant" for many of its products
means that their software will interpret two-digit years before about 40 as
belonging to the 21st century. This may or may not be what you want the
program to do depending on your application.

Gary Damschen
member Microsoft Developer Network (among other things)
damschenga@mkf.ornl.org

These are my personal musings and have nothing to do with my employer. All
other standard disclaimers apply.