Date windowing

Last updated

Date windowing is a method by which dates with two-digit years are converted to and from dates with four-digit years. [1] The year at which the century changes is called the pivot year of the date window. [2] Date windowing was one of several techniques used to resolve the year 2000 problem in legacy computer systems. [3]

Contents

Reasoning

For organizations and institutions with data that is only decades old, a "date windowing" solution was considered easier and more economical than the massive conversions and testing required when converting two-digit years into four-digit years. [3] [4]

Windowing methods

There are three primary methods used to determine the date window:

FOCUS

Information Builders's FOCUS "Century Aware" implementation [5] allowed the user to focus on field-specific and file-specific settings.

This flexibility gave the best of all three major mechanisms: A school could have file RecentDonors set a field named BirthDate to use

DEFCENT=19 YRTHRESH=31, covering those born 1931-2030.

Those born 2031 are not likely to be donating before 2049, by which time those born 1931 would be 118 years old, and unlikely current donors. DEFCENT and YRTHRESH for a file containing present students and recent graduates would use different values.

Examples

Below is a simple example of fixed date windowing COBOL code, often used to figure the century for ordinary business dates.

IFRECEIPT-DATE-YEAR>=60MOVE19 TORECEIPT-DATE-CENTURYELSEMOVE20 TORECEIPT-DATE-CENTURYEND-IF.

The above code establishes a fixed date window of 1960 through 2059. It assumes that none of the receipt dates are before 1960, and should work until January 1, 2060. [3]

Some systems have environment variables that set the fixed pivot year for the system. Any year after the pivot year will belong to this century (the 21st century), and any year before or equal to the pivot year will belong to last century (the 20th century). [6]

Some products, such as Microsoft Excel 95 used a window of years 1920–2019 which had the potential to encounter a windowing bug reoccurring only 20 years after the year 2000 problem had been addressed. [7]

The IBM i operating system uses a window of 1940-2039 for date formats with a two-digit year. [8] In the 7.5 release of the operating system, an option was added to use a window of 1970-2069 instead. [9]

See also

Related Research Articles

A calendar date is a reference to a particular day represented within a calendar system. The calendar date allows the specific day to be identified. The number of days between two dates may be calculated. For example, "25 April 2024" is ten days after "15 April 2024". The date of a particular event depends on the observed time zone. For example, the air attack on Pearl Harbor that began at 7:48 a.m. Hawaiian time on 7 December 1941 took place at 3:18 a.m. Japan Standard Time, 8 December in Japan.

A software bug is an error, flaw or fault in the design, development, or operation of computer software that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The process of finding and correcting bugs is termed "debugging" and often uses formal techniques or tools to pinpoint bugs. Since the 1950s, some computer systems have been designed to detect or auto-correct various software errors during operations.

<span class="mw-page-title-main">HCL Notes</span> Collaborative software platform

HCL Notes is a proprietary collaborative software platform for Unix, Windows, Linux and macOS, sold by HCLTech. The client application is called Notes while the server component is branded HCL Domino.

<span class="mw-page-title-main">IBM PC DOS</span> Computer operating system

IBM PC DOS, an acronym for IBM Personal Computer Disk Operating System, is a discontinued disk operating system for the IBM Personal Computer, its successors, and IBM PC compatibles. It was manufactured and sold by IBM from the early 1980s into the 2000s. Developed by Microsoft, it was also sold by that company as MS-DOS. Both operating systems were identical or almost identical until 1993, when IBM began selling PC DOS 6.1 with new features. The collective shorthand for PC DOS and MS-DOS was DOS, which is also the generic term for disk operating system, and is shared with dozens of disk operating systems called DOS.

<span class="mw-page-title-main">SPSS</span> Statistical analysis software

SPSS Statistics is a statistical software suite developed by IBM for data management, advanced analytics, multivariate analysis, business intelligence, and criminal investigation. Long produced by SPSS Inc., it was acquired by IBM in 2009. Versions of the software released since 2015 have the brand name IBM SPSS Statistics.

<span class="mw-page-title-main">Year 2038 problem</span> Computer software bug occurring in 2038

The year 2038 problem is a time computing problem that leaves some computer systems unable to represent times after 03:14:07 UTC on 19 January 2038.

IBM DevOps Code ClearCase (also known as IBM Rational ClearCase) is a family of computer software tools that supports software configuration management (SCM) of source code and other software development assets. It also supports design-data management of electronic design artifacts, thus enabling hardware and software co-development. ClearCase includes revision control and forms the basis for configuration management at large and medium-sized businesses, accommodating projects with hundreds or thousands of developers. It is developed by IBM.

Adabas, a contraction of “adaptable database system," is a database package that was developed by Software AG to run on IBM mainframes. It was launched in 1971 as a non-relational database. As of 2019, Adabas is marketed for use on a wider range of platforms, including Linux, Unix, and Windows.

<span class="mw-page-title-main">Service pack</span> Single installable package of software updates

In computing, a service pack comprises a collection of updates, fixes, or enhancements to a software program delivered in the form of a single installable package. Companies often release a service pack when the number of individual patches to a given program reaches a certain (arbitrary) limit, or the software release has shown to be stabilized with a limited number of remaining issues based on users' feedback and bug reports. In large software applications such as office suites, operating systems, database software, or network management, it is not uncommon to have a service pack issued within the first year or two of a product's release. Installing a service pack is easier and less error-prone than installing many individual patches, even more so when updating multiple computers over a network, where service packs are common.

A patch is a set of changes to a computer program or its supporting data designed to update or repair it. This includes bugfixes or bug fixes to remove security vulnerabilities and correct bugs (errors). Patches are often written to improve the functionality, usability, or performance of a program. The majority of patches are provided by software vendors for operating system and application updates.

<span class="mw-page-title-main">Perpetual calendar</span> Calendar designed to look up the day of the week for a given date

A perpetual calendar is a calendar valid for many years, usually designed to look up the day of the week for a given date in the past or future.

Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category, these numbers are generally assigned in increasing order and correspond to new developments in the software. At a fine-grained level, revision control is used for keeping track of incrementally-different versions of information, whether or not this information is computer software, in order to be able to roll any changes back.

<span class="mw-page-title-main">PCBoard</span> Bulletin board system (BBS) application

PCBoard (PCB) was a bulletin board system (BBS) application first introduced for DOS in 1983 by Clark Development Company. Clark Development was founded by Fred Clark. PCBoard was one of the first commercial BBS packages for DOS systems, and was considered one of the "high end" packages during the rapid expansion of BBS systems in the early 1990s. Like many BBS companies, the rise of the Internet starting around 1994 led to serious downturns in fortunes, and Clark Development went bankrupt in 1997. Most PCB sales were of two-line licenses; additional line licenses were also available.

<span class="mw-page-title-main">Blue Wave (mail reader)</span>

Blue Wave is a file-based offline mail reader that was popular among bulletin board system users, especially users of FidoNet and other networks that generated large volumes of mail. It allowed users to download all of their mail and messages, read and edit them offline, and then upload any replies. This reduced the amount of time they spent on line. The name "Blue Wave" originally referred to the client software, but as new clients were written that supported the same file format, the name came to refer primarily to the format itself.

In computer science and computer programming, system time represents a computer system's notion of the passage of time. In this sense, time also includes the passing of days on the calendar.

In computer science, data type limitations and software bugs can cause errors in time and date calculation or display. These are most commonly manifestations of arithmetic overflow, but can also be the result of other issues. The most well-known consequence of this type is the Y2K problem, but many other milestone dates or times exist that have caused or will cause problems depending on various programming deficiencies.

In computing, an epoch is a fixed date and time used as a reference from which a computer measures system time. Most computer systems determine time as a number representing the seconds removed from a particular arbitrary date and time. For instance, Unix and POSIX measure time as the number of seconds that have passed since Thursday 1 January 1970 00:00:00 UT, a point in time known as the Unix epoch. Windows NT systems, up to and including Windows 11 and Windows Server 2022, measure time as the number of 100-nanosecond intervals that have passed since 1 January 1601 00:00:00 UTC, making that point in time the epoch for those systems. Computing epochs are almost always specified as midnight Universal Time on some particular date.

<span class="mw-page-title-main">Year 2000 problem</span> Computer bugs related to the year 2000

The year 2000 problem, also commonly known as the Y2K problem, Y2K scare, millennium bug, Y2K bug, Y2K glitch, Y2K error, or simply Y2K, refers to potential computer errors related to the formatting and storage of calendar data for dates in and after the year 2000. Many programs represented four-digit years with only the final two digits, making the year 2000 indistinguishable from 1900. Computer systems' inability to distinguish dates correctly had the potential to bring down worldwide infrastructures for computer reliant industries.

The leap year problem is a problem for both digital (computer-related) and non-digital documentation and data storage situations which results from errors in the calculation of which years are leap years, or from manipulating dates without regard to the difference between leap years and common years.

Peter de Jager is a South African-born Canadian computer engineer, best known for his Y2K early 1990s outcry warning, and was the namesake of the de Jager Year 2000 index that began trading on the American Stock Exchange in 1997.

References

  1. Bridis, Ted (16 March 1999). "Temporary Y2K fix may last only a generation". Online Athens. Archived from the original (html) on 4 March 2016. Retrieved 13 February 2020. Using windowing, programmers instruct software to guess the century for dates that fall within a specific "window" of time, such as the next three decades. The computer interprets the year based on a future so-called hinge date, or pivot, that programmers choose arbitrarily
  2. Healton, Gilbert (12 July 2014). "The Best of Dates, The Worst Of Dates". Archived from the original (html) on 13 February 2020. Retrieved 13 February 2020. A pivot year, also known as date windowing, takes a two-digit year and expands it to determine which century the year is in. Typically the year is converted to either a full four-digit year or into the year-1900 format, as appropriate to the application at hand.
  3. 1 2 3 Raymond B. Howard. "The Case for Windowing: Techniques That Buy 60 Years". Year/2000 Journal (Mar/Apr 1998). Windowing is a long-term fix that should keep legacy systems working fine until the software is redesigned...
  4. McNish, Larry (30 December 2019). "The Y2K Pivot Year Problem". Archived from the original on 15 January 2020. Retrieved 13 February 2020. The choice of the actual pivot year was made by companies based on their historical records. It was in no way an industry standard, nor was this approach in any way professionally recommended. But it would work for a while.
  5. Kruskopfs, Peter. "Solving the Date Dilemma". Information Builders. p. 4. Archived from the original on 27 December 1996. Retrieved 2 March 2020. expanded version of the sliding windows technique .. File and field level settings
  6. "Chapter 1: Pivot Year". APPX Software, Inc. 2003. Archived from the original (html) on 22 September 2012. Retrieved 13 February 2020. By defining a pivot year, you direct APPX to determine what century a particular year belongs to. For example, if the pivot year is set to 35, then any date field with a year greater than 35 will be assumed by APPX to have a century value of 19. Any date field with a year less than or equal to the pivot year will be assumed by APPX to have a century value of 20.
  7. Livingston, Brian (9 February 1999). "COMPUTING Spot & fix Y2K problems in Windows 9x & NT". CNN . Archived from the original (html) on 17 May 2001. Retrieved 13 February 2020. The other common behavior that Windows users will experience involves dates in spreadsheet programs such as Microsoft Excel, Lotus 1-2-3, and Corel Quattro Pro. If you have typed all your dates with four-digit years (such as 1/1/1999 and 1/1/2000), you should be fine. But if you have typed two-digit years (such as 1/1/29), you may be surprised at the way different programs handle the date.
  8. "New base year support for 2-digit year date formats". IBM. 3 May 2022. Retrieved 4 May 2022.
  9. Alex Woodie (3 May 2022). "Announcement Day: IBM Lifts The Veil On IBM i 7.5 And 7.4 TR6". IT Jungle. Retrieved 4 May 2022.