Year 10,000 problem
Encyclopedia
The Year 10,000 problem (also known as the Y10K problem or the deca-millennium bug) is the class of all potential software bug
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...

s that would emerge when the need to express years with five digits arises. The problem can have discernible effects today, but is also sometimes mentioned for humorous effect as in RFC 2550.

Practical relevance

Historical and technological trends suggest that in the actual year 10,000 it is extremely unlikely that any of the data processing technology or software in use today will still be active, nor can it be known whether the present Gregorian calendar
Gregorian calendar
The Gregorian calendar, also known as the Western calendar, or Christian calendar, is the internationally accepted civil calendar. It was introduced by Pope Gregory XIII, after whom the calendar was named, by a decree signed on 24 February 1582, a papal bull known by its opening words Inter...

 system will even still be in use. However, five-digit years are already a problem today for some forward-looking analysis programs, such as software that examines proposals for the long-term handling of nuclear waste.

Problems with date-handling programs

Many date-handling programs or routines created prior to the recognition of the Y2K problem only used the last two digits of a year for storage and calculation, such as "60" for 1960. The routines would then either add the constant 1900 to the result, or even just insert the text string "19" in front of the result when displaying it, causing the year 2000 to be displayed or interpreted as 1800, 1900, 19100, or 100. Although this was often done to preserve what was at the time precious storage and memory space (reasons now unlikely to be relevant), it was also done as a mirror of cultural practice (saying "the '60s" instead of "the 1960s", for example) or to convey information in a limited display space.

Barring dramatic breakthroughs in life extension
Life extension
Life extension science, also known as anti-aging medicine, experimental gerontology, and biomedical gerontology, is the study of slowing down or reversing the processes of aging to extend both the maximum and average lifespan...

 research, neither anyone alive today nor their closely related descendants will ever experience anything but a four-digit Gregorian year. For this reason there is a strongly ingrained cultural inclination to format years in a way that only considers their last four digits. This is likely to cause years greater than 9999 to be presented or stored incorrectly.

Examples

This problem can be seen in the spreadsheet program Microsoft Excel
Microsoft Excel
Microsoft Excel is a proprietary commercial spreadsheet application written and distributed by Microsoft for Microsoft Windows and Mac OS X. It features calculation, graphing tools, pivot tables, and a macro programming language called Visual Basic for Applications...

 through at least the Office Excel 2007 release, which stores dates as the number of days since 31 December 1899 (day 1 is 1900-01-01), and the database program Microsoft Access
Microsoft Access
Microsoft Office Access, previously known as Microsoft Access, is a relational database management system from Microsoft that combines the relational Microsoft Jet Database Engine with a graphical user interface and software-development tools. It is a member of the Microsoft Office suite of...

, which stores dates as the number of days since 30 December 1899 (day 1 is 1899-12-31). In either application, a date value of 2958465 will be correctly formatted as "31 December 9999" but adding 1 to that to step over to the expected date of "1 January 10000" will cause a formatting error; in Excel 2000, for example, it will be displayed in the cell as a series of # characters. Excel also cannot automatically convert date-formatted strings such as "12/12/2007" to dates if the year exceeds 9999; "12/12/9999" is automatically converted to a date when entered into a cell, but "12/12/10000" is not.

The Long Now Foundation
Long Now Foundation
The Long Now Foundation, established in 1996, is a private organization that seeks to become the seed of a very long-term cultural institution. It aims to provide a counterpoint to what it views as today's "faster/cheaper" mindset and to promote "slower/better" thinking...

 ran into this limitation of Excel during the design of the 10,000 year clock.

The open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 OpenOffice.org
OpenOffice.org
OpenOffice.org, commonly known as OOo or OpenOffice, is an open-source application suite whose main components are for word processing, spreadsheets, presentations, graphics, and databases. OpenOffice is available for a number of different computer operating systems, is distributed as free software...

 Calc
OpenOffice.org Calc
OpenOffice.org Calc is the spreadsheet component of the OpenOffice.org software package.Calc is similar to Microsoft Excel, with a roughly equivalent range of features. Calc is capable of opening and saving most spreadsheets in Microsoft Excel file format...

 program is able to display dates beyond the year 9999 correctly with five digit years, but at least through version 2.4 falls victim to the Year 32,768 problem: "31 December 32,767" is the highest available date it can properly display. 32767, or 215-1, is the highest positive number that can be represented using a 16-bit signed integer, adding one to this value causes it to overflow
Arithmetic overflow
The term arithmetic overflow or simply overflow has the following meanings.# In a computer, the condition that occurs when a calculation produces a result that is greater in magnitude than that which a given register or storage location can store or represent.# In a computer, the amount by which a...

, and Calc interprets the year as a large negative number, "1 January -32768".

The GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

 Fortran
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

 compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

, g77
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

, makes reference in run-time
Run-time system
A run-time system is a software component designed to support the execution of computer programs written in some computer language...

 environment limits to year 10000 (Y10K) problems when using intrinsic function
Intrinsic function
In compiler theory, an intrinsic function is a function available for use in a given language whose implementation is handled specially by the compiler. Typically, it substitutes a sequence of automatically generated instructions for the original function call, similar to an inline function...

s with this compiler suite. The problem is simply stated as, "Most intrinsics returning, or computing values based on, date information are prone to Year-10000 (Y10K) problems, due to supporting only 4 digits for the year." The failure mode suggested in all of the intrinsic functions is that, "Programs making use of this intrinsic might not be Year 10000 (Y10K) compliant. For example, the date might appear, to such programs, to wrap around (change from a larger value to a smaller one) as of the Year 10000."

Problems with data representation

Unlike the Y2K problem, where significant digits were omitted from the stored values of years, fixing the Year 10,000 problem does not require updating old records (assuming they are already Y2K compliant), since all four significant digits are present. It only requires that record storage in decimal be able to store five or more digits.

There is, however, a potential problem with record sets that make use of lexical sorting. For example, representations of dates in the range 10,000-19,999 would appear interlaced with dates in the range 1000-1999 rather than after the year 9999.

Mitigation

The Long Now Foundation
Long Now Foundation
The Long Now Foundation, established in 1996, is a private organization that seeks to become the seed of a very long-term cultural institution. It aims to provide a counterpoint to what it views as today's "faster/cheaper" mindset and to promote "slower/better" thinking...

 is attempting to foster the custom of writing years with five digits, so that the year 2000 would be written as "02000". This would preempt the Year 10,000 problem, but would in turn be susceptible to a "Year 100,000 problem".

The Internet Kermit
Kermit (protocol)
Kermit is a computer file transfer/management protocol and a set of communications software tools primarily used in the early years of personal computing in the 1980s; it provides a consistent approach to file transfer, terminal emulation, script programming, and character set conversion across...

 Service Daemon
Daemon (computer software)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...

 (IKSD) uses a five-digit field for the year in the Database Record Format: "Date-time fields are right-adjusted within a field of 18 with the leading blank reserved for Y10K".

ISO 8601
ISO 8601
ISO 8601 Data elements and interchange formats – Information interchange – Representation of dates and times is an international standard covering the exchange of date and time-related data. It was issued by the International Organization for Standardization and was first published in 1988...

 specifies that years be written with four digits, but allows for extension to five or more digits, with prior agreement between the parties exchanging the information.

See also

  • Holocene calendar
    Holocene calendar
    The Human Era, also known as the Holocene calendar or Holocene era , is a year numbering system that adds exactly 10,000 years to the currently world-dominant Anno Domini and Common Era system, placing its first year near the beginning of the Holocene epoch and the Neolithic revolution...

  • Long Now Foundation
    Long Now Foundation
    The Long Now Foundation, established in 1996, is a private organization that seeks to become the seed of a very long-term cultural institution. It aims to provide a counterpoint to what it views as today's "faster/cheaper" mindset and to promote "slower/better" thinking...

  • Perpetual calendar
    Perpetual calendar
    A perpetual calendar is a calendar which is good for a span of many years, such as the Runic calendar.- General information :...

  • System time

Further reading

— MathPages notes a similarity between the Y10K problem and both Pascal's wager
Pascal's Wager
Pascal's Wager, also known as Pascal's Gambit, is a suggestion posed by the French philosopher, mathematician, and physicist Blaise Pascal that even if the existence of God could not be determined through reason, a rational person should wager as though God exists, because one living life...

 and the St. Petersburg paradox
St. Petersburg paradox
In economics, the St. Petersburg paradox is a paradox related to probability theory and decision theory. It is based on a particular lottery game that leads to a random variable with infinite expected value, i.e., infinite expected payoff, but would nevertheless be considered to be worth only a...

, stating that the cost of fixing the various Y10K, Y100K, and successive problems is increased in direct proportion to the remoteness of the date, and that therefore each problem should in fact be given equal weight. — Templeton hypothesizes the impact of the Year 10000 problem.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK