西暦2000年問題とは?

西暦年を下2桁で処理しているコンピュータシステムにおいて、西暦2000年が「00」年と処理されることにより、2000年代のデータを入力すると、前後関 係が現実と逆転して処理される(2000年が1900年として認識される)ことが原因で発生する問題のことです。

コンピュータシステムにおいて、日付なしの情報はほとんどないと言っていいでしょう。そしてデータ処理は、順序、比較、分類、範囲など日付に基づいてコントロールされているが基礎となっています。
「00」年とデータを入力しても受付を拒否する、データが混乱する、あるいはデータが消滅する、コンピュータが異常停止を起こすなどの誤作動で、業務は大混乱となる可能性があります。

特に、汎用機やオフィスコンピュータ(オフコン)の業務処理システムで生じます。

本問題を回避するためには、
  1. システムおよびデータの修正
  2. 場合によってはシステムの入れ替え
  3. これまでの汎用機やオフコンからパソコンのシステムへの切り替え
    などの対策が必要になります。

コンピュータで西暦年を下2桁で表記してきた理由は?

1960年代〜80年代のコンピュータの導入・普及時期においては、大量のデータを保存・処理することは技術的に困難であり、非常に高価なメモリやハードディスク容量を大幅に拡張することは不可能だったのです。

(参考) 1994年を1とした場合の価格比
1981年1994年
メモリ価格(単位当たり)35
ハードディスク価格(単位当たり)133


コンピュータ産業が育成されてきた欧米では、西暦を下2桁で表記するのが慣例でありました。その意味で、この2000年問題は日本だけに限らず、米国でも、欧州でも全く同じ問題を抱えているのです。

2000年問題の具体的な例

製造年月日より5年間の有効期限の記録
(有効期限の方が製造年月日より大きな数字になるのが普通です)


             (1)製造年月日が1994年1月17日の場合
                     940117
                  +   50000 
                ─────────        有効期限  1999年1月17日 
                     990117     (正常な状態です)

 
             (2)製造年月日が1997年1月17日の場合
                     970117
                   +  50000
                   ────────   
                     020117         有効期限  1902年1月17日、

                      (有効期限の方が製造年月日より前になるという
                                            ことになり「入力エラー」となってしまう)
 
(和暦を使っている場合)
西暦を和暦に変換するプログラムが、「00」を「1900」年として計算するため、「00」と入力すると「明治33年」として識別してしまう。


(クレジット会社)
カードに記載された「00」を1900年と判断し、使用不可能と識別してしまうPOSレジ端末が市中の小売店に相当数残っているため、2000年以降使用できるクレジットカードが発行できない。