The approaching millennium presents a challenge to the continued use and viability of existing programs and database systems. Despite introduction of more recent computing systems, these so called "legacy" systems continue to perform valuable functions and, as such, users continue to invest significant time and resources to maintain them. One reason is to avoid the great expense, inconvenience or disruption encountered to obtain suitable replacement.
Continued use of legacy systems beyond the year 2000 presents a particular problem. Many data and software structures of these older programs use abbreviated date fields, that is, date fields consisting of six characters to represent day/month/year, instead of the eight characters found in a non-abbreviated date field of more recent software systems that reflect the century. For example, the date Nov. 17, 1972 is designated as 11/17/1972 in a non-abbreviated date field format such as MM/DD/YYYY. By contrast, that date in an abbreviated format of MM/DD/YY would be 11/17/72, i.e., without designation of century. In other words, typical legacy systems experiencing the "year 2000 dilemma" are those in which two instead of four characters represent the year.
In calculating periods between respective dates in abbreviated formats, non-compliant systems simply subtract the earlier date from the later date to yield a result. For instance, in determining the number of years between 1949 and the year 1988, "49" is subtracted from "88" to correctly yield "39" years. A correct result is obtained so long as the year elements involved in the calculation represent the same century. Ambiguities arise when the calculation involves data elements of different centuries, such as, when determining the period between 1988 and 2002. The absolute value of subtracting abbreviated elements """88""" and "02" erroneously yield "86" years, instead of 14 years. Programs using such algorithms are said to be "non-compliant" with the year 2000.
One solution for "fixing" non-compliant programs, known as "expansion," involves altering date fields of a database by expanding their two-character year fields to four characters to indicate the century. In this way, subtracting "1988" from "2002" correctly yields "14" years. In addition, expansion of date fields often engenders compatibility problems due to a change in record size. In particular, the required recompilation of affected routines in the computing system relative to the "expanded" database segment may affect the ability of other routines that access the same database. Accordingly, expansion places a tremendous burden of conversion of the entire system, or necessitates the development of software bridges to enable communication between compliant and non-compliant portions of the computing system. Re-writing code to convert programs is time-consuming due to debugging and testing requirements. In some instances, it may also require a substantial amount of downtime. Developing software bridges is also time and labor intensive, requiring massive testing and increased processing time.
"Windowing" is another solution to attaining year 2000 compliance. It is less costly and involves identifying the century prefix for a date field assuming a fixed period of time typically, 20 to 50 years, before performing any calculation. This technique has limited applications and, at best, is only a temporary fix since it may disturb other algorithms in the computing system. Establishing a "19" or "20" century prefix by windowing requires establishing a predetermined time window based on a presumption that the values of date elements fall within a predetermined window. However, "windowing" is not reliable because it is based on information that is not constant as years pass, causing the need to redefine the window from time-to-time.
In view of the foregoing, it is therefore an objective of the present invention to provide an improved method and system for enhancing computer programs and databases to achieve year 2000 compliancy.
It is a further objective of the present invention to provide an automated process of modifying or enhancing computational systems for achieving year 2000 compliancy, thereby lessening the time, cost and manpower effort.
It is a further objective of the present invention to minimize the disruption of converting computational systems for achieving year 2000 compliancy that would otherwise be experienced using expansion or windowing techniques.
It is yet a further objective of the present invention to maintain system wide database integrity of computational systems by preserving the original database and yet still achieve the accuracy of expansion techniques.
It is yet a further objective of the present invention to provide a process of examining source code and databases for determining whether, and how much, they must be enhanced to achieve year 2000 compliancy.
It is another objective of the present invention to provide an auxiliary file for processing or handling date information externally of and without disturbing the original database, and to provide a method for scanning, searching and identifying date fields within a database for creating the auxiliary file.