From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public From: "Rick Smith" Subject: Re: Software landmines (loops) Date: 1998/09/04 Message-ID: #1/1 X-Deja-AN: 387825564 References: <902934874.2099.0.nnrp-10.c246a717@news.demon.co.uk> <6r1glm$bvh$1@nnrp1.dejanews.com> <6r9f8h$jtm$1@nnrp1.dejanews.com> <6renh8$ga7$1@nnrp1.dejanews.com> <6rf59b$2ud$1@nnrp1.dejanews.com> <6rfra4$rul$1@nnrp1.dejanews.com> <35DBDD24.D003404D@calfp.co.uk> <6sbuod$fra$1@hirame.wwa.com> <35f51e53.48044143@ <904556531.666222@miso.it.uq.edu.au> <6sf87j$47n$1@hirame.wwa.com> <6sh6ic$o8p$1@nnrp1.dejanews.com> <6shhcq$lid$1@hirame.wwa.com> <6sk59r$8e6$1@nnrp1.dejanews.com> <6ske0c$16k$1@hirame.wwa.com> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 X-Trace: news1.atlantic.net 904914165 207.30.140.136 (Fri, 04 Sep 1998 09:02:45 EDT) NNTP-Posting-Date: Fri, 04 Sep 1998 09:02:45 EDT Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-04T00:00:00+00:00 List-Id: Robert Martin wrote in message <6ske0c$16k$1@hirame.wwa.com>... > > ... But of course many of the Y2K problems are not being >solved by expanding the field to four digits. Rather they are adding *code* >not *space*. The technique is called windowing. Whenver date subtractions >or comparisons are done in the code, they interpreted as follows: > > if date > X assume 1900 else assume 2000 > >If X is 50 then any date larger than 50 is assumed to be in the 20th >century. Otherwise the data is assumed to be in the 21st century. > >This, of course, means that there will be a Y2050 crisis. Ah, but no. >Because X is not universally agreed upon. Some applications use 60, some >use 40. So what we really have is a smearing of the crisis over the next >several decades. Portions are correct for fixed windowing only! Consider that when reading data into the system, one could apply the window to create a 4 digit date, internally. In that situation, "date subtractions or comparisons" would be done on 4 digit dates. However, flexible windowing assumes a range around the current (system) date. In these cases, there is no specific "crisis" date and, in fact, may never have a "crisis" date. Besides, most dates need to have range checks for reasonableness. For example, should the date for a current transaction be accepted, without error or warning, if the date is more than a few days from the current date? Some data has a lifetime that makes 4 digit years unnecessary. If the requirements for an existing system state that a "back order" must be resolved within 30 days of the order date and that completed orders will not be held for more than 5 years, what is the benefit of changing the system to store 4 digit years with the order? The benefits of windowing should be clear. 1. No user should be required to enter more data than is necessary. If the correct 4 digit year can be determined by the last two digits, do not ask for more than these 2 digits. 2. Given the choice between windowing and reformating persistent data, choose windowing. Reformating existing data could break other parts of the system. Finally, for new systems or when reformating persistent data choose to store the data with 4 digit years or replace a calendar date format with a standard date format. >Of course none of those old COBOL programs will still be running then... Of course they will! :-) ------------------------------- Rick Smith e-mail: < ricksmith@aiservices.com >