The Y2K
problem is here again
Remember the Y2K problem? Come 1
January 2000 planes were going to fall from the sky,
electronic devices were going to stop working, phones and vehicles
were going to fail. I even read of a prediction that washing machines
would stop working.
While many of these dire predictions proved
to be false there were, thankfully, many software faults identified
that were fixed well in time allowing most business and technology based
processes to continue virtually unaffected. I can recall many software
product manufacturers (including Microsoft) and personal computer manufacturers
releasing upgrades well in time averting any possible problems
arising from Y2K. There was only one software product I personally used
that failed - a database programming product named dBXL. It failed the
first time in 2000 that I tried to update a data table and the
manufacturer had gone out of business. Too bad!
Would you be surprised to learn that the Y2K problem
is still with us? Well, up until a week ago (as at 25 April 2005) I certainly
would have been dumbfounded to discover so. That was until one Sunday
morning a week or so ago I woke up to find where I live (Wellington, New Zealand) there
had been an extended electricity power cut to my supply. When I went
downstairs I noticed the display on my video cassette recorder (VCR) was
blinking incessantly. It was trying to tell me something.
And what my VCR was trying to tell me was that its
internal clock needed to be reset. Its battery backup lasted only an
hour. So I reset it manually. But in doing so I just happened to notice
something that caught my attention. I could not advance the date in my
VCR beyond the year 2005.
Oops! That's important to me. If I cannot advance the
VCR's date beyond 2005 it's going to make automatic recording of material
from 2006 rather difficult. It might even be impossible to do so!
There are these days all manner of electronic devices
that include their own internal clock. Their clocks include both the time in
hours and minutes, and the calendar day of week, date, month and year.
In fact it's hard to find an electronic device today that does not include both
the date and time in this form.
It occurred to me that I might own other electronic
devices with internal clocks that exhibit this same problem. So I
checked. I found six within an hour. If I look harder I will undoubtedly
find more.
I found I had the following items which had
limitations in their internal clocks. Their internal calendars were
limited to a range of years, for example:
OK, perhaps I am paranoid. Should I expect the
internal clock in electronic equipment to work forever? Maybe not, but I
think I should reasonably expect it to continue to work at least for the
useful life of the product, more so if its ongoing usefulness to me is
dependent on the clock for its correct operation.
A few examples: if I purchased a new electronic watch
when I was aged thirty something I would expect it to work at least
another forty to fifty years. But if I purchased a really expensive
electronic gold watch I would expect it to work for at least another 100
years, after all I might want to bequest it to another family member.
Another example: my VCR. How long should its internal clock continue to
operate correctly? I think whatever period it just has to be more than
the meagre 15 years of my Mitsubishi VCR. For it to last until the year
2005 is really just too small.
And besides, there are a total of just fourteen
possible calendars in our Gregorian calendar system (see further
discussion below). Tell me just what is the problem in providing all fourteen
calendar years in
any electronic device? All fourteen will
make the internal clock function correctly forever! Well, perhaps
strictly speaking not forever, but at least until 31 December in the
year 9999, which is almost 8,000 years hence!
A couple of more recent experiences I had. I
visited a friend just the other day. The internal clock on his VCR
expired at the end of 2003! As a consequence he has given up using it
for recording. He uses it only to play back existing tapes. If he wants
to record something automatically off TV he has to set the calendar
manually: the date will be right but the day of week and year will
likely be wrong - very confusing. If he wanted to record next Tuesday's
episode of his favourite TV program ... ?
And a second experience. I am interested in purchasing
a new electronic digital watch. You will recall my existing watch is a
Longines with an internal calendar that lasts until 2099. It's over ten
years old now. A very nice watch, very adequate and I will continue to
use it. But for some passtimes I want to be able to see additional
information - like altitude, location/ direction, temperature and
humidity, etc. There is a Casio watch that interests me. It's not cheap
but that's OK. But guess what? Its internal clock expires at the end of
2039! A new watch that will become virtually unusable at the end of
2039! Sorry, that's not for me. I want something that I will be useable
for somewhat longer - fifty years and preferably a hundred or more.
The "21C" problem
We need a way to quickly refer to the problem I have
outlined above. Just as the "Y2K" name was used to identify problems
surrounding the use of computers and computer software in their
transition from the year 1999 to 2000, so too do we need to identify
succinctly the problem I have described above.
I have adopted the name "21C" to help us identify and
name this problem. "21C" is just an acronym I have chosen to refer to a
problem that has become more apparent in the early part of the 21st
century. Although just a variation on the older Y2K problem, I have
chosen "21C" because it describes this problem succinctly, is easy to
remember and differentiates it from the Y2K problem, which differs in
many respects.
The "21C" problem is more or less defined as an
inadequacy in the design and/or build of an electronic device that
prevents its internal clock from accurately representing the correct
date and time in such a way as to interfere with, or detract from, its
actual use.
What can we do about the 21C problem?
So we have a problem, why? It has occurred because
many manufacturers want us the buy more of their products. So they only
engineer products to be only as good as they want them to be. So the solution is
for us as customers to demand better. Here is what we can all do.
Next time you are buying anything electronic - watch,
alarm clock, TV, computer, phone, stereo, home theatre, DVD or CD
player/recorder, in fact any electronic device whatsoever, ask about the
device's internal clock. Find out what range of years it supports. If
this range expires in less than fifty to one hundred years, don't buy.
It's that simple. If everyone does the same, manufacturers are going to
quickly get the message that we demand greater calendar ranges in to our electronic devices.
That just leaves the electronic devices we have
already purchased. What do we do about these?
We are stuck with the problem. We can go out and buy a
new replacement. But why? in many cases the existing device will be
perfectly usable, apart from the problem with its internal clock.
So here is what can be done to prolong the life of the device and save
you some money in the process.
The "21C device life extender" process
There is a fairly straight forward investigation we
can undertake and process we can go through to extend the life of a 21C-afflicted device.
The process involves identification of calendar year types (explained
further in step 2 below):
- Assess the device and find out the range
of years supported by its internal clock. Call this range A.
-
Work out when the sequence of
calendar year types in range A next repeats itself. Call this range B.
-
When the first year in range B
comes round, set the internal calendar of this device to the first
year in range A. The device will now record dates correctly (but for
the year of course) for the duration of range B.
-
If there is a gap in the years
between range A and range B, call this range C. Work out the calendar
year types for each year in range C and, when each comes round, substitute
it with an equivalent year from range A.
-
There is just one other
possibility. If range C includes leap years that do not occur in range
A, it is then not possible for the device to represent 29 February for
these leap years. But what can be done is to use two calendar years to
represent each of these: one for the period from 1 January to 28
February and the other from 1 March to 31 December. An example below
will clarify this further.
Further information
Here is some further information to assist working out
a solution to the 21C problem for any electronic device.
-
21C worksheet
(Adobe Reader PDF format, 16 KB) - This worksheet lists
all 14 Gregorian calendar year types for the years 1984 to 2100. You can
use this worksheet to help you work through the "21C device life
extender" process.
-
21C worksheet
(Excel format, 25 KB) - Same as 1 but in Microsoft Excel format.
-
21C
example for VCR (Adobe Reader format, 18 KB) - This worksheet is
for the following example.
A worked example
As an example I will use my Mitsubishi VCR that has an
internal clock that supports only the years 1991 to 2005. Use the above
example worksheet (number 3) for working through the following example.
Step 1 - assessment for range A
Find out exactly what calendar year range your device
supports. This is not too difficult to determine. Look in the device's
instruction manual or see if you can find this information or on the
manufacturer's web site. The easiest and most reliable method I found
was to attempt to reset the date in the device. Usually there will be a
setup process. Go through this process and see what range of years can
be entered. There will be a minimum and a maximum value for the year that the device
allows you to enter. Note this range. The maximum value tells you when
the internal clock in your device will cease to function correctly. In
the case of my VCR this is midnight on 31 December 2005. It will most
likely transition to 1 January 1991 on 1 January 2006.
Step 2 - work out when the sequence
of calendar year types for the device next occurs, range B
The idea here is to determine when the exact same
sequence of calendar types next occur in your device's internal calendar (1991 to
2005 in my VCR example). In the case of my VCR this is 2019
to 2033. The above worksheet makes this easy to work out. But let me
first explain a little more.
The current Gregorian calendar has just 14 possible
types. There are just fourteen possible because every year must commence
on just one of seven possible days and thence there is only one other
possible variation with two outcomes: the year has either 365 or 366
days, the latter in a leap year. And seven multiplied by two
equals fourteen, the total number of possible Gregorian calendars.
In the worksheet I have listed the characteristics of
the fourteen possible Gregorian calendars and also listed which of these
applies to each year from 1984 to 2100. Now it's easy to work
out when the pattern of years in the device's internal clock next occur. In the case of
my VCR it is 2019 to 2033.
To work this out I have taken the first four years in
my VCR's date range (1991 to 1994), then taken their year type values
(3,11,6 and 7) and looked for the next repeat of this pattern - it is 2019 to
2022. I then note when the pattern for the entire range 1991 to 2005
ceases to repeat itself starting from the beginning of this new range - it's
2033.
So I can extend the range of calendars supported by my
device to 2033 just by resetting the year to 1991 when the actual
calendar date gets to the year 2019. The years displayed by my device
will be incorrect but the day of week, date and month will be spot on, thus
allowing for its reasonably normal continued usage.
Step 3 - "the gap", range C
With my VCR example there is a remaining period from
2006 to 2018 still to be dealt with. This requires the device calendar
to be reset annually to a year in the device's internal clock calendar range that has
the same type. So the year 2006 (type 1) has the same type as 1995; 2007
(type 2) has the same form as 2001, and so on.
Step 4 - fix any leap year problems
If you are unlucky you will find there may be a leap
year or two in range C with a year type that is not in the device's
internal calendar. So, for my VCR the years 2008 (type 10), 2012 (type 8)
and 2016 (type 13) do not have a year type that occurs in the VCR's internal calendar
(1991 to 2005).
But I can improvise for all but one day of these years (being 29
February) because there are non leap year calendars I can make use of
instead, and here is how. I can make use of two non leap year calendars
to represent each of these leap years:
For example, year 2008 starts on a Tuesday and
finishes on a Wednesday (it's a leap year of course). The year 1991
starts on a Tuesday and the year 1997 finishes on a Wednesday. So I use:
> for 1 January to 28 February 2008 the calendar for
1991.
> for 1 March to 31 December 2008 the calendar for 1997.
> for 1 January to 28 February 2012 the calendar for
1995.
> for 1 March to 31 December 2012 the calendar for 2001.
> for 1 January to 28 February 2016 the calendar for
1993.
> for 1 March to 31 December 2016 the calendar for 1994.
But for 29 February 2008 I have no available calendar in
my VCR. And
similarly for 2012 and 2016.
In summary
I have described above the symptoms of the 21C problem
that afflicts many types of electronic devices today.
The "21C" problem is defined as an inadequacy in the
design and/or build of an electronic device that prevents its internal
clock from accurately representing the correct date and time in such a
way as to interfere with, or detract from, its actual use.
If you already have an electronic device afflicted
with this problem, you can extend its useful life by following the 21C
device life extender process above. This process does not fix the 21C
problem, it just allows you to continue to use the device more or less
normally.
If you are purchasing an electronic device, check before you
commit to its purchase. Find out the year when its internal calendar
expires. If this expiry year is insufficient for your purposes
(typically 50 to 100 years hence) don't buy the device. Instead buy
another that does not have this problem. It's only when we demand from
manufacturers that their products are free of this problem that it will
be fixed.
------
Brett E. Sinclair
25 April 2005
Note to re-publishers:
You are free to copy this article or parts thereof as long as the
source is acknowledged. Brett Sinclair is a self employed
Information Technology consultant with more than thirty years experience
in the industry.