CA2222051A1 - Method for year 2000 date - Google Patents

Method for year 2000 date Download PDF

Info

Publication number
CA2222051A1
CA2222051A1 CA 2222051 CA2222051A CA2222051A1 CA 2222051 A1 CA2222051 A1 CA 2222051A1 CA 2222051 CA2222051 CA 2222051 CA 2222051 A CA2222051 A CA 2222051A CA 2222051 A1 CA2222051 A1 CA 2222051A1
Authority
CA
Canada
Prior art keywords
date
century
bits
bit
year
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA 2222051
Other languages
French (fr)
Inventor
Emil Sagal
Alex Bogdan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WW MAGEE Ltd
Original Assignee
WW MAGEE LTD.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WW MAGEE LTD. filed Critical WW MAGEE LTD.
Publication of CA2222051A1 publication Critical patent/CA2222051A1/en
Abandoned legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

A method of dealing with the year 2000 problem, in which dates from the system clock are converted into BCD form using the first seven bits to represent the decade and year of the date as a number from 0 to 99. The eighth bit is used to distinguish between the centuries by having one value for the 20th century and a second value for the 21st century. Alternatively any one of the eight bits can be oscillated, the position of the bit being oscillated distinguishing among any of at least eight centuries.

Description

Title: METHOD FOR YEAR 2000 DATE

FIELD OF THE INVENTION
This invention relates to a method for solving the problem commonly known in the computer industry as the "Year 2000 Problem".
More particularly it relates to a method of encoding a year so that it is recognized by a computer program as being either a 20th century date or a later date.

BACKGROUND OF THE INVENTION
Computers deal at their most fundamental level with zeros 10 or ones. A bit is either "off" or "on". A bit has a value "0" for off and "1"for on. As the bits are strung together, the amount of information capable of being conveyed increases. Two bits are capable of four combinaffons:
off/off, off/on, on/off, on/on. Three bits of are capable of ei8ht combinations. The number of combinations is a numerical sequence for 15 the exponential powers of two. For example, eight bits are capable of representing 28J or 256 different patterns. Most businesses, however, do not deal only with the values zero and one; instead, they utilize 10 digits, "O" to "9". Thus the problem arose of how to best represent the base-10 (ten digits) ~yslelll of the business world in the base-2 (two digits) 5iyste~n of 20 the electronic computer.
In the early days of electronic computing the ability to store and manipulate data was very limited due in a large part to the high cost of data storage devices. In order to minirnize the use of storage, various codes were developed to minimize the use of bits in storage. The most 25 common method for storage of decimal or integer data was the hexadecimal sy~ n. By using four bits to store a digit, it was possible to store the values "0" to "15"; this is a hexadecimal-based ~y~len,. A subset of hexadecimal ("hex") became known as Binary Coded Decimal ("BCD").
BCD used four bits to store only the digits "0" to "9".
As computer programs evolved for business use, it became necessary for programmers to minimize data space usage to reduce costs.
As a result, one of the first pieces of data felt to be redundant was the century and millennia of a year. The rationale was that it was urmecessary to store the "19" part of "1964", so only the "64" was stored. At the time, 5 this seemed reasonable. Storage was expensive and prograrns that worked with only the last two digits of a year were not expected to exist for more than a few years. Unfortunately, this was not the case. Millions of lines of software programming were developed using this principle and the date format they created and access continue to be used today.
A software application developed using only the last two digits of a yearly date will fail to operate correctly upon the year 2000. For example, in the calculation of the interest due on a financial instrument purchased in 1990, the il~teresl will be calculated on the current year minus the year of purchase. The year 2000 minus 1990 yields: zero minus 90 =
15 -90, the negative 90th interest year. Using this negative 90th year value to calculate interest will not provide the expected result, i.e. the interest calculation for the 10th interest year.
Several solutions have been proposed to solve this problem.
The most common solution is to modify the e~asting software applications 20 and data to use all four digits of a date. For large legacy sy~len,s that have millions of lines of code and that are often poorly documented, and huge arnounts of legacy data, this is an expensive solution. Another proposed solution is to assume that dates with a value less than fifty are from the 21st century while those greater than 50 are from the 20th century. This 25 fifty year or "sliding window" solution is restrictive and short term.
Thus, what is needed is a method of dealing with the "Year 2000 Problemn in a manner that is ine*~e~ive and efficient.

SUMMARY OF THE INVENTION
In one of its aspects the present invention provides a method 30 of representing and storing dates in a computer sysL~m having a :jyslen~
clock, co~ ising:

(a) reading a date from said system clock, said date having bits representing the century, decade and year of said date, (b) determining the century of said date, (c) converting the decade and year of said date into a single representation of a base-10 number between 0 and 99, (d) providing a separate indication, associated with said representation, of the century of said date.
The present invention will now be described, by way of 10 example only, with reference to the following drawings, in which like reference numerals refer to like parts.

BRIE~ DESCRIPTION OF THE DRAWINGS
In the following drawings:
Figure 1 is a diagram of a bit pattern representing the year 96 15 in BCD;
Figure 2 is a diagram of a binary bit representation of the year 1996 making use of the invention;
Figure 3 is a diagrarn of a binary bit representation of the year 2001 making use of the invention;
Figure 4 is a diagram of a an eight bit pattern, nurnbering each bit;
Figure 5 is a diagram of a binary bit representation of the year 2396 making use of the invention;
Figure 6 is a flow chart of an implementation of the 25 "blinking" bit feature of the invention;
Figure 7 is a flow chart of one use of the invention; and Figures 8a and 8b are flow charts detailing step 60 of figure 7.

DETAILED DESCRI~ION OF THE PREFERRED EMBODIMENT
Reference is first made to Fig. 1, which shows a conventional BCD representation of the date "96". As shown, four bits 10 are used to CA 022220~1 1997-11-2~

represent the digit "6", and four bits 12 are used to represent the digit "9".
As discussed previously, the date is assumed to be 1996, but it could in fact be from any century.
The inventors have realized that while eight bits are normally employed to represent separately the two base-10 digits used to indicate the decade and year of a date, in fact, in a binary encoding scheme seven bits are capable of representing the numbers 0 to 127. This is indicated in Fig. 2, where seven bits 14a are used in conventional fashion to provide a single representation of the base-10 number "96". Since only 10 seven bits are used, an empty or unused bit 16a exists in the eighth bit position. This unused bit 16 may be used to indicate the applicable century. For example, as shown in Fig. 2, it may be set to "0" to indicate a 20th century date such as 1996 (or any date from the beginning of 1900 to the end of 1999), while as shown at 16b in Fig. 3, it may be set at "1" to 15 represent any date in the 21st century (from the beginning of 2000 to the end of 2099). Fig. 3 therefore illustrates using the high order or eighth bit 16b to indicate the binary representation of the year 2001. (The first seven bits 14b provide a single representation of the year "01".) While the simplest procedure is to use the highest order or 20 eighth bit 16a or 16b to indicate the century, it is not essential that the highest order bit be used for this purpose. Instead a bit at any position of the eight bit binary representation of the last two digits of a year can be used. (The individual bits are listed by number in Fig. 4, with the highest order bit being indicated as number 8 and the lowest order bit being 25 indicated as bit 1, as is conventional.) For example the 21st century- can beindicated using bit number eight, the 22nd century- can use bit number seven, and so on. The implementation utilizing this sy~lelll will then need to be aware of which bit represents the century- during its manipulation of date information. This can be achieved relatively simply.
For example, whenever the implementation is working with a conventional database, it can assume that the date is a 20th century date.
When the implementation reads the date from the sy~lem clock (which CA 022220~1 1997-11-2~

-will contain the full century and millennium information), it will have the correct century information and can utilize the desired bit 1 to 8 to indicate the required century. When a date other than a 20th century date is newly stored in a database, other data can be stored wit~ the date for the 5 implementation to determine to which century the bit belongs.
Fig. 5 shows a representation of a 23rd century date, in which bit number 6 is used to represent the 23rd century. When working with a date in this format, the implementation will then remove the sixth bit and shift the remaining bits back to their binary representation of the decade 10 and year.
In another implementation, any bit or pattern of bits may be made to oscillate or "blink" between the values "0" and "1". This is performed by enabling the computer to change the value of a selected bit or bits with each "tick" or instruction cycle of a system clock. By 15 examining the date values at regular intervals, a software application may detect this blinking and determining from the blinking pattern the century that such date value represents.
As an example of blinking, consider a bit changing from the value zero to one every instruction cycle of the computer. A simple 20 program will read the value of the bit over a number of instruction cycles and discern the repeating "off" and then "on" pattern. This pattern, if desired, combined with the position or positions of the bit or bits being blinked, will indicate the century of the date being examined. More complex blinking patterns may be used. An encoding scheme may be 25 utilized to inform the software application that a pattern of "off" and "on"
values defines a particular century for the date bein~ examined.
Fig. 6 is a flow chart of a computer program that will cause a single bit in the date value to blink in a simple "on" and "off" pattern.
The ~yste~l clock 32 provides a clock tick 33 on every instruction cycle or 30 increment of the ~y~ n clock. A program 34 recognizes the clock tick and checks a specific bit in the date value 37. The program 34 must of course know which bit it must blink, assumed to be bit x. If bit x is set to zero, CA 022220~1 1997-11-2~

then program 34 sets bit x to one at 36. If bit x is set to one, then at 35 program 34 sets bit x to zero. The resultant date value, which includes blinking bit x, is indicated at 37. An application program 38 checks the date value 37 to determine whether it is changing over time (i.e. with clock 5 ticks), and records the pattern of the changes or blinks to determine the century value of the date.
By way of example, if no bits are blinking, the date may be assumed to be a 20th century date. If the eighth or highest order bit is blinking, the century for the date may be assumed to be the 21st century, 10 and so on. By blinking no bits or single bits, eight centuries may be represented in this fashion. By blinking combinations of bits, an additional large number of centuries can be represented. When a bit is being blinked and also serves a role in indicating a decade and year, the software can look at the bit value during e.g. add clock cycles, to obtain the 15 value for the decade and year, and can look at the bit values during even clock cycles only to deterrnine whether the bit is being blinked.
As mentioned, the encoding arrangements described are methods which a software application may use to encode a date when it has the century information. Usually, as indicated, this will be the date 20 from the computer clock, but it can also include dates received directly from user input, or from databases which have the complete date and not just the decade and year. When processing a date that corlsists only of the decade and year, an assumption must be made as to the century. As indicated, some applications may wish to assume a century based on the 25 source of the input, e.g. an old legacy database will be assumed to contain dates only from the 20th century.
Storage of the dates which indicate the century and perhaps the millennium, in a database, will as mentioned require the storage of further data to indicate the century. This encoding can be deciphered 30 when the century and encoding scheme chosen are known.
Reference is next made to Fig. 7, which illustrates an example of a process embodiment using the present invention. In Fig. 7, a date CA 022220~1 1997-11-2~

difference determination process is shown, which includes a database 50 containing within its records dates comprised of two digits in the BCD
format (20th century dates). A record from the database 50 is read by the date read routine 52 and is stored into computer memory as the date in 5 BCD format 54. The system clock 56 generates the current date 58. A
convert dates function 60 (to be described) converts the current date 58 and the retrieved date 54 into two binary format converted dates 62.
Next, a compare dates function 64 compares the converted dates 62 and provides as an output value the date difference 66 in binary 10 form. An output formatter 68 then uses the date difference and converted dates to produce a report which may be printed on printer 70, providing printed output 72.
The output formatter 68 may also use the date difference and converted dates to display date information as a display 74 on a computer 15 video terminal 76.
Alternatively, or in addition, the output formatter 68 may store the converted dates or the differences in a further database. Storage of the date differences provides no problem, but storage of the dates themselves requires that there be a method of determining what century 20 they are from when they are recalled. One simple solution is to have a database for each century, so that for example 21st century records are stored in a 21st century database 78. Alternatively, a further type of data may be employed to indicate the century of the date being stored. Any type of further data may be used, since memory storage is inexpensive. One 25 simple method is simply to store all four digits of the year, or if desired simply three digits (indicating the century, decade and digit of the year), but other methods may be used as desired.
Reference is next made to Fig. 8A, which shows a flow chart for the portion of the convert dates routine 60 which converts the BCD
30 date 54. Routine 60 includes a split date function 80, which splits the date 54 into two parts, namely decade 82 and year 84. The split parts are in binary form. If the date were the date shown in Pig. 1, decade 82 would have the value nine and year 84 would have the value six. At step 86 decade 82 is multiplied by 10. The resulting values of decade 88 and year 84 are added at step 90. The resulting binary date 92 is one of the date components of the converted dates 62. For the purpose of this example, it is noted that the BCD date 54 is assumed to be a 20th century date.
Fig. 8B shows a flow chart for the portion of the convert dates routine 60 which converts the current date 58. Current date 58 is of a format provided by the ~y~t~ clock 56. Routine extract YlY2Y3Y4 100 extracts all four digits of the year from the current date 58, using any 10 known method dependent on the format of the current date 58. From the date extracted by routine 100, the last two digits, decade (Y3) and year (Y4) are converted to a binary representation by convert Y3Y4 102. If the millennium of the current date is two (i.e. the year 2000, or Yl=2), as shown at 104 then the unused bit, e.g the highest or eighth bit, of the 15 converted date 102 is set to the value one by step 104.
As will be appreciated by those skilled in the field, it is not essential to represent the data using BCD in order to utilize the present invention. The invention may be used with any encoding arrangement that stores only the last two decimal digits of any date.
While prefelred embodiments of the invention have been described, it will be re~li7e~ that various changes may be made within the scope of the invention, and all such changes are intended to be included within the appended ~ imc.

Claims (10)

1. A method of representing and storing dates in a computer system having a system clock, comprising:
(a) reading a date from said system clock, said date having bits representing the century, decade and year of said date, (b) determining the century of said date, (c) converting the decade and year of said date into a single representation of a base-10 number between 0 and 99, (d) providing a separate indication, associated with said representation, of the century of said date.
2. A method according to claim 1 wherein said representation utilizes seven bits, and an eighth bit is used to indicate said century, so thatthe century, decade and year of said date are represented by eight bits.
3. A method according to claim 2 wherein the highest order bit of said eight bits is used to represent the century of said date, and the remaining first seven bits of said eight bits are used to represent the decade and year of said date.
4. A method according to claim 3 wherein said highest order bit is used to represent said century by having one value for the 20th century and a second value for the 21st century.
5. A method according to claim 3 wherein the highest order bit is used to represent said century by having a fixed value to indicate one of said 20th and 21st centuries, and an oscillating value to represent the other of said 20th and 21st centuries.
6. A method according to claim 3 wherein different bits of said eight bits are used to represent different centuries, said method including oscillating the bit which is used to represent a particular century, the century being represented being determined from the position of the bit being oscillated.
7. A method according to claim 2 wherein different bits or groups of bits of said eight bits are used to represent different centuries, said method including oscillating selected bits in a pattern for indicating a particular century.
8. A method according to any of claims 1 to 7 and including the step of printing said date in hard copy.
9. A method according to any of claims 1 to 7 and including the step of displaying said date on a screen.
10. A method according to any of claims 1 to 7 and including the step of storing said date in a database.
CA 2222051 1996-11-26 1997-11-25 Method for year 2000 date Abandoned CA2222051A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US75674396A 1996-11-26 1996-11-26
US08/756,743 1996-11-26

Publications (1)

Publication Number Publication Date
CA2222051A1 true CA2222051A1 (en) 1998-05-26

Family

ID=25044868

Family Applications (1)

Application Number Title Priority Date Filing Date
CA 2222051 Abandoned CA2222051A1 (en) 1996-11-26 1997-11-25 Method for year 2000 date

Country Status (1)

Country Link
CA (1) CA2222051A1 (en)

Similar Documents

Publication Publication Date Title
US5644762A (en) Method and apparatus for recording and reading date data having coexisting formats
US5710917A (en) Method for deriving data mappings and data aliases
US5737735A (en) Method and apparatus for recording and reading date data having coexisting formats
US5758336A (en) Date format and date conversion procedure using a packed binary format
US4628452A (en) Electronic cash register system with input verification
KR900000920B1 (en) Electronic cash resister
CN110716739A (en) Code change information statistical method, system and readable storage medium
CA2222051A1 (en) Method for year 2000 date
Lewin et al. Theory and design of digital computer systems
US3613086A (en) Compressed index method and means with single control field
US6055532A (en) Method and apparatus for recording and reading date data having coexisting formats
US6904437B2 (en) Date formatting system
JPS642970B2 (en)
Reitwiesner The first operating system for the EDVAC
US5751623A (en) Digital computer for adding and subtracting
JPS63175927A (en) Method and apparatus for processing binary coded dicimal/backed data
EP0358860B1 (en) Apparatus and method for processing data corresponding to labels
KR870001402B1 (en) Data processing
Bracken et al. A general system for handling alphameric information on the IBM 701 computer
Cowell An Information-theoretical Model Applied to Computer Programs
CN100533988C (en) Intelligent card data compaction/de-compaction and writing/reading card device
Young et al. Dataplot 70, FORTRAN-callable Plotting Routines
Udalagama History and use of computers
Norman Storing data from simulation runs for compactness and quick retrieval
Kantabutra Thailand’s first computers: The IBM 1620 and the IBM 1401

Legal Events

Date Code Title Description
FZDE Dead