Y2K 2000年問題
コンピュータ暴走説に戻る

 2000年問題は,西暦の年号をコンピュータの内部で「下2ケタ」 だけで扱ってきたために発生する問題である。主に,次のような処理が含まれているプログラムやシステムで,年号が2ケタ表現されている場合に,2000年問題が発生する可能性がある。
1)年号への加算/減算(月,日,時間,分,秒単位の加算/減算により,年単位へ繰り上がり/繰り下がりが生じる場合も当然含まれる。2ケタ表現の年号に乗除算するプログラムも問題だが,ほとんど存在しないだろう)。期間計算,西暦と和暦の変換などが代表的。企業の生命線を握る受発注システム,生産計画システムなどで「Xカ月先」の処理は当然のように発生するので,この種のプログラムは最も多いだろう。
2)年号の大小比較(「00」や「01」が,「98」や「99」より大きいと判定しなければならない)。このためソート関連のプログラムも問題になる。
3)曜日を条件とした処理や,経過日数の計算。2000年がうるう年であることに起因する(「2000年2月29日(火曜日)」や「2000年の第366日」は存在する。うるう年は「100の倍数ではない4の倍数か,400の倍数」の年に巡ってくる。1900年には2月29日は存在しなかった)
4)ハードウエアが生成する「現在時刻」データの使用。パソコンなどで問題がある製品が多く知られている。ファイルの生成時刻などの管理情報にそのまま使われるので,運用管理システムなどに注意が必要だ。「マイクロプロセサ組み込み機器」の2000年問題はほとんどこの種のものである。
5)日付データのうち「99/9/9」「99365」などの値を「永久」の意味に割り当てているシステム。メインフレーム用の運用管理システムでは,ファイルやテープの保管期限にこのような表現が使われていた。同様に,「00」に特殊な意味を与えているプログラムも危険である。
6)2ケタで入力した年号を,内部で自動的に4ケタの年号に解釈するプログラム。入力を簡単にするためにパソコン用のパッケージ・ソフトの多くがこの機能を持っている。手入力の場合のほか,他のアプリケーションで作ったデータを読み込むための変換プログラムでも,2ケタ年号を自動的に(勝手に?)4ケタ年号に解釈 する場合がある。
        ( 日経コンピュータ1998年 1月19日号「最後通告 西暦2000年問題」より )