A TimeExpirationError occurs when a datatype used for timekeeping reaches its maximum value, and cannot represent dates further into the future. Y2K (YtwokErrors) is the most famous example of this.
Examples (including ones reachable in the forseeable future; don't clutter the list with timer types set to expire billions of years after the universe ends. :) )
- Y2K. Lots of programs used two-digit text fields to represent the year; which caused problems for dates in 2000 and beyond. In many cases, this was "fixed" by redefining 00 to mean 2000, 01 to mean 2001, etc...., such programs may need continual maintenance as the "century window" gets periodically bumped up. (Others were fixed properly; but a "proper fix" wasn't possible or tractable for many ancient Cobol systems still in production).
- Many predicted that Y2K would bring about catastrophe, as systems suddenly failed at midnight. Didn't happen. As soon as it was apparent that disaster wasn't upon us, many decried the whole Y2K scare as a boondoggle cooked up to keep Cobol programmers employed. :)
- Unix time_t (essentially a signed-32 bit int with an epoch of midnight Jan 1, 1970) should roll over in 2038 or so.
The Time problem is only a problem if it isn't fixed. Those who worked on the Y2K problem and fixed things so that the catastrophe did not occur know that the fixes involved not only fixes to prevent failure but also fixes which insured accuracy and correctness of time and time intervals in processes, some of which were mission-critical. Those who were not involved often speculate based on an after the fact "I knew it wasn't a real problem" which failed to take into account the work done to make sure it wasn't. --
DonaldNoyes
CategoryTime