The
Year 10,000 problem a.k.a.
Y10K or
deca-millennium bug is the class of all potential
software bugA 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 arise. The problem can have discernible effects today, but is also sometimes mentioned for humorous effect.
Historical and technological trends suggest that in the actual year 10,000 it is unlikely that any of the data processing technology or software in use today will still be active, or that the present
Gregorian calendarThe Gregorian calendar is the internationally accepted civil calendar. It was first proposed by the Calabrian doctor Aloysius Lilius, and decreed by Pope Gregory XIII, after whom the calendar was named, on 24 February 1582 by the papal bull Inter gravissimas...
system will even still be in use.
The
Year 10,000 problem a.k.a.
Y10K or
deca-millennium bug is the class of all potential
software bugA 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 arise. The problem can have discernible effects today, but is also sometimes mentioned for humorous effect.
Practical relevance
Historical and technological trends suggest that in the actual year 10,000 it is unlikely that any of the data processing technology or software in use today will still be active, or that the present
Gregorian calendarThe Gregorian calendar is the internationally accepted civil calendar. It was first proposed by the Calabrian doctor Aloysius Lilius, and decreed by Pope Gregory XIII, after whom the calendar was named, on 24 February 1582 by the papal bull Inter gravissimas...
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.
Since (barring yet-unforeseen breakthroughs in
life extensionLife extension, also known as anti-aging medicine, experimental gerontology, and biomedical gerontology, refers to attempts to slow down or reverse the processes of aging to extend both the maximum and average lifespan...
,
geriatricsGeriatrics is the branch of medicine that focuses on health care of the elderly. It aims to promote health and to prevent and treat diseases and disabilities in older adults....
,
cryonicsCryonics is the low-temperature preservation of humans and animals that can no longer be sustained by contemporary medicine until resuscitation may be possible in the future. Currently, human cryopreservation is not reversible, which means that it is not currently possible to bring people out of...
or
time travelTime travel is the concept of moving between different moments in time in a manner analogous to moving between different points in space, either sending objects backwards in time to a moment before the present, or sending objects forward from the present to the future without the need to...
) neither anyone alive today nor their closely-related ancestors or descendents will ever experience anything but a four-digit Gregorian year, 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 ExcelMicrosoft Excel is a 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 VBA...
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 AccessMicrosoft 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...
, 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
open sourceOpen source is an approach to the design, development, and distribution of software, offering practical accessibility to a software's source code. Some consider open source as one of various possible design approaches, while others consider it a critical strategic element of their operations...
OpenOffice.orgOpenOffice.org , commonly known as OpenOffice, is an office application suite available for a number of different computer operating systems. It is distributed as free software and written using its own GUI toolkit...
CalcOpenOffice.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 5 digit years, but at least through version 2.4 falls victim to the Year 32,768 problem: "31 December 32767" is the highest available date it can properly display. 32767, or 2
15-1, is the highest positive number that can be represented using a 16-bit signed integer, adding one to this value causes it to
overflowThe 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
GNUGNU is a computer operating system composed entirely of free software. Its name is a recursive acronym for “GNU's not Unix!” This name was chosen because GNU's design is Unix-like, but differs from Unix by being free software and containing no Unix code...
FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
compilerA compiler is a computer program that transforms source code written in a computer language into another computer language...
,
g77The 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-timeA run-time system is a collection of software designed to support the execution of computer programs written in some computer language...
environment limits to year 10000 (Y10K) problems when using
intrinsic functionIn 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 is able to store five 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 could appear adjacent to dates in the range 1000-1999 rather than after the year 9999.
Mitigation
The
Long Now FoundationThe 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. The Long Now Foundation...
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
KermitKermit 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
DaemonIn Unix and other computer multitasking operating systems, a daemon is a computer program that runs in the background, rather than under the direct control of a user; they are usually initiated as background processes...
(IKSD) uses a 5-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".
Humorous references
In the months leading up to the
Year 2000 problemThe Year 2000 problem was a notable problem for both digital and non-digital documentation and data storage situations which resulted from the practice of abbreviating a four-digit year to two digits.In computer program design, the practice of representing the year...
, the Year 10,000 problem was given humorous exposure in such forms as the April Fool's Day RFC 2550.
See also
- Holocene calendar
The Holocene calendar, popular term for the Holocene Era or Human Era, is a year numbering system similar to astronomical year numbering but adds 10,000, placing its first year at the start of the Human Era the approximation of the Holocene Epoch for easier geological, archaeological,...
- 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. The Long Now Foundation...
- Perpetual calendar
A perpetual calendar is a calendar which is good for a span of many years, such as the Runic calendar.- General information :For the Gregorian calendar, a perpetual calendar often consists of 14 one-year calendars, plus a table to show which one-year calendar is to be used for any given year...
- System time
Further reading
— MathPages notes a similarity between the Y10K problem and both
Pascal's wagerPascal's Wager is a suggestion posed by the French philosopher Blaise Pascal that even though the existence of God cannot be determined through reason, a person should wager as though God exists, because so living has everything to gain, and nothing to lose...
and the
St. Petersburg paradoxIn 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.