2000年問題
2000年問題(にせんねんもんだい)は、グレゴリオ暦2000年になるとコンピュータが誤作動する可能性があるとされた年問題である。Y2K問題(ワイツーケイもんだい:"Y"は年(year)、"K"はキロ(kilo))、ミレニアム・バグ(millennium bug)とも呼ばれた。
原因
直接の原因は、プログラム内で日付を扱う際の年数の表現を下2桁だけにしたことである。COBOLやFORTRANのような古いプログラミング言語ではデータ型に「日付型」が用意されていない。したがって、プログラム内では、年数をグレゴリオ暦の下2桁だけの「文字型」で表現していることがある。この方式では2000年が内部で00年となるので、これを1900年とみなしてしまい、例えば「データベースを日付順に並べ替える処理をすると、順序が狂う」などの誤作動につながる可能性があるとされた。
また、2000年は400年に一度の特別な閏年であって閏日(2月29日)があるのに、その処理をしていないプログラムもあった。現行の太陽暦であるグレゴリオ暦では、閏年について次の規則がある。
- 4で割り切れる年は閏年とする。
- 1.のうち、100で割り切れる年は閏年としない(平年)。
- 2.のうち、400で割り切れる年は閏年とする。
したがって、2000年は閏年だった(1900年や2100年は4で割れるが閏年ではない)。しかし、誤って1.と2.だけを適用し、閏年としないプログラムがあったので、この対応も併せて必要とされた。
コンピュータの初期は、リソース(特にメモリ)の費用負担が大きく、できるだけメモリを節約するプログラムが要求された。年号を下2桁で表すことによってリソースを節約をするのは、当時のプログラマの間では当然の技法であった。そのようなプログラムの多くは1960年代から1980年代頃に開発された。当事者は「2000年までには、何らかの改良が加えられるか、全く新しいプログラムが運用されるだろう」との前提でいたので、特にこの問題に対する対策を施していないことが多かった。2000年問題が表面化した際は、プログラムを作成した技術者の退職などもあり、手作業でのプログラムの確認と修正が必要になることが多かった。
これらのプログラムが作成された時点で既に、多くの国で様々な領域や分野でコンピュータが使用されていたので、思わぬところでの機能停止の危険があり得ることが指摘されていた。これらの問題によって、物流その他の社会運営上の不具合の発生などが予想され、国際経済が深刻な不況に陥る可能性を指摘する声もあった。一部には、カレンダーをもたない独立した組込みシステムの誤動作の不安を煽るなど、あたかもフェイルセーフで設計されたものがこの世にないかのように騒ぐなどの過剰反応も見られた。
事前対策
当時、想定された問題には、次のようなものがあった。
したがって、1990年代末に使用していたプログラムの訂正が世界規模で行われた。この修正作業に費用と期間が取られてしまい、中小零細レベルの会社などにおいて大きな打撃となった。
結果
テンプレート:国際化 結果としては直前にマスメディアで騒がれていたような生活に直結するほどの大きな混乱は一切起きず、ほぼ杞憂に終わった。
もともと2000年問題の深刻さと対処については疑問の声も多くあり、例えば1月1日よりも2月29日の方が大きな騒ぎとなったことを理由に、「そもそも重大な危険が存在しなかった」という意見がある。これに対しては「対策を行った結果として大きな問題が発生しなかったのであり、何の対策も行わなかった場合は大きな問題が発生していただろう」との意見もある。
日本
日本においては、消費税の導入や、元号が昭和から平成に変わるという、プログラムの全面的な見直しを要求される問題が1989年に発生しており、その際に2000年問題への対処も併せて行うことが多かった。
Xデーまでの対策
1998年7月15日に、財務局から各金融機関に対して「コンピュータ2000年問題対応に関する資料の提出について」という通達が出された。
- 経営における2000年問題対応の位置付けに関する資料
- 総費用見積りに関する資料
- 対応体制に関する資料
- 対応スケジュールに関する資料
- 進捗状況に関する資料
- 危機管理計画に関する資料
- 対応状況の開示に関する資料
これらの資料の3か月ごとの提出が命じられ、1999年10月からは毎月の提出が求められた。内容は、あらゆる機器のリストアップ、問題判別の実施、対応マニュアルの作成・配布、一斉テストの実施、顧客・取引先に対しての周知徹底などである。
金融機関は政府と一体となって取り組み、サービスが停止することのないよう万全な体制を取った。
1998年12月には小渕恵三首相が自らテレビCMに出演し、2000年問題への注意を促した。
日付 | 事象 |
---|---|
1999年9月9日 | 9が5つ並ぶ日 |
1999年12月30日 | 金融機関最終営業日 |
1999年12月31日 | 1999年最終日 |
2000年1月1日 | 2000年初日 |
2000年1月3日 | 海外市場取引開始日(シドニー市場) |
2000年1月4日 | 金融機関営業開始日 |
2000年1月8日 | 最初のATM土曜稼働日 |
2000年1月10日 | 日付の桁数が初めて7桁になる日(成人の日) |
2000年1月15日 | 通常営業日(成人の日ではない) |
2000年2月28日 | 翌日が閏日(月末ではない) |
2000年2月29日 | 400年に一度の閏日 |
2000年3月31日 | 最初の期末日 |
2000年10月10日 | 日付桁数が初めて8桁になる日(体育の日ではない) |
2000年12月31日 | 2000年最初の年末 |
2000年1月1日
1999年12月31日から2000年1月1日にまたがる運行をするJR東日本などの鉄道各社は、全ての列車を最寄りの駅に臨時停車して運転を見合わせ、航空便はシステムの不測の事態に備えて欠航したり、年が明けてからの出発に変更したりした。
2000年になった時点では、一部のシステムに不具合は出たものの、大部分が致命的な問題には至らなかった。また、システムによっては時刻を協定世界時(UTC)で取り扱うものがあり、そのようなシステムでは日本時間の2000年1月1日午前9時に不具合が生じることも懸念されたが、午前9時を迎えてもそれほど重大な問題には至らなかった。具体的な例としては、女川原子力発電所、福島第二原子力発電所および志賀原子力発電所で、警報装置が誤報を発したり一部のデータ管理が不能になったが、発電、送電や放射性物質管理に問題は発生しなかった[1]。
身近な例として、当時NTTドコモが販売していた携帯電話「ムーバN206」(NEC製)のショートメール機能において、「既読メールが容量オーバーで受信できなくなった場合、古いメールから自動削除する」機能が誤作動した[2]。また、2000年を想定した設計がされていない古いビデオデッキの予約録画、ワープロ機の文書管理機能などに影響が出た。
2000年2月29日
2000年2月29日に、当日を閏日として処理せず「日付誤り」として取り扱う事例が発生した。
- 郵便貯金ATMのうち、約1,200台が停止。富士通製のLSIに不具合があって、1996年から1999年にかけて製造された同社製および沖電気工業製の一部ATMが停止したことが、同日深夜に郵政省と富士通から発表された。
- 札幌市交通局の路線バスから地下鉄への乗継ぎ不可。路線バスから地下鉄に乗り換えようとすると、バスで発行される「乗継ぎ券」の日付が2月28日になってしまい、地下鉄の自動改札機を通過できなかった。
- 気象庁のアメダスが誤作動。長崎県平戸市では降雨がないにもかかわらず、1時間に973mmの降雨量を記録した。
参考文献
関連項目
- コンピュータと社会
- ソフトウェア保守
- 年問題 - 下記をはじめ各年問題についての概要を解説
- 1999年8月21日問題 - GPSについての問題
- 2001年9月9日問題
- 2036年問題 (Network Time Protocol)
- 2038年問題
- 西暦10000年問題(Y10K問題)
- 民国100年問題(2011年問題、中華民国台湾)zh:民國百年蟲,en:Y1C_Problem
- 昭和100年問題(2025年問題)
- 平成100年問題
- 旧暦2033年問題
- オーバーフロー、カウンターストップ
- ミレニアム