Pretty Good Software Design    www.pgsd.co.nz
 
Professional web page and application software design at an affordable price
 


About Us
FAQs
Products and Services
QwikBak
Y2K is here again
ASDP Table Maker

 

 

 

 
Home Contact Us  

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:

bulletMitsubishi VCR:        1991 to 2005
bulletSony video camera: 1998 to 2029
bullet2 x FujiFilm digital still cameras: 2000 to 2050
bulletPanasonic VCR:       1988 to 2087
bulletLongines watch:      to 2099

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):

  1. Assess the device and find out the range of years supported by its internal clock. Call this range A.
  2. Work out when the sequence of calendar year types in range A next repeats itself. Call this range B.

  3. 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.

  4. 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.

  5. 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.

  1. 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.

  2. 21C worksheet (Excel format, 25 KB) - Same as 1 but in Microsoft Excel format.

  3. 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:

bullet- one year from range A that starts on the same day of the week for the period from 1 January to 28 February, and
bullet

- a second year from range A that ends on the same day of the week to represent the period from 1 March to 31 December.

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.

 
What next?

Do you have any useful additional commentary concerning the 21C problem: email me here.

 

 

Copyright © 2005 Pretty Good Software Design, Wellington, New Zealand. All rights reserved.