今更ながら2000年問題

4年に一度閏年となります。閏年について調べていたら2000年問題に出くわしました。当時、働いていた会社でも結構な騒ぎになりました。1999年の表記は99とされることが多かったです。2000年は00となるのですが、1900年の表記も00となる事から重大なトラブルが発生する可能性があると報じられました。ソフト開発会社からは2000年問題対応の追加ソフトは配信されたりしていました。会社では、年末にコンピュータやサーバーの電源を落として2000年になってから改めて電源を入れて機械が正常に動くかどうかを確認することとなりました。そのため例年ならば正月休みの日に経理や電算担当者は出勤することなりました。そのときはいろんなシミュレーションをしました。当時、営業の仕事をしていてひとりに1台のPCが配置されていました。まずは本社のメインコンピュータが正常に動くか確認、経理関係のPCを確認、受発注システムの稼働を確認、伝票発行ができるか、印字 特に日付が正しいかを確認する等々 もしこれができなかったらどうするといたシミュレーションでした。わたしは営業の仕事をしていましたが、まさかの事態に備えて年始は会社から連絡があったら出勤することとなっていました。その年の年始はとても落ち着かない日を過ごすこととなりました。さらに仕事始めの当日、受注したデータの処理が正しく行われるか?また、配送伝票などが正しく印刷されるかなども実際にシステムを動かしてみないとわかりません。全社員、通常よりも早めに出勤し、最悪 伝票を手書きする体制をとりました。幸いなことに2000年問題でシステム停止などの事態にはなりませんでした。

2000年問題を調べていたら閏年には規則があることを知りました。その記述はウイキペディアには以下の通りに書かれています。

置閏法を誤解している場合

1996年など平常の「閏年」とは異なり、2000年は「400年に1回」の特殊な閏年で閏日2月29日)があるのに、その処理をしていないプログラムもあった。なお、土曜日から始まる閏年は、1972年以来28年ぶりであった。現行のグレゴリオ暦では、閏年について次の規則がある。

  1. 西暦年数で4で割り切れる年は閏年とする。
  2. 1.のうち、100で割り切れる年は平年とする。
  3. 2.のうち、400で割り切れる年は閏年とする。

従って、1900年は平年(100で割り切れても400で割り切れない)であったが、2000年は閏年であった。しかし、誤って1. と2. だけを適用し、2000年を閏年としないプログラムがあったので、この対応も併せて必要とされた。前述のように年の下位2桁しか処理しないシステムでは、「400で割り切れる年」と「400で割り切れない年」を区別できず、1. 2. の規則のみに沿って年表示が00である年を平年として扱うようにプログラムすると、この問題が生じる。

偶々 2. 3. の規則を知らずに1. の規則のみに則るか、1. 2. 3. の規則を全て承知で西暦2099年までは4で割り切れる判定で充分と認識し、単純に4で割り切れるかどうかで閏年を判定するシステムでは、2000年を閏年として扱って問題は起きない。

上記の規則でいくと2000年は4で割り切れるので閏年となりますが、100でもわれるので平年かとおもいきや、400でわれるので閏年となるのでした。この3段階をしらなかったら本来閏年となるのに平年としてしまったら つまり2月が28日で終わりか29日で終わるか?1日分のずれが生じてしまうことになります。これも2000年問題であったそうです。

データのバックアップや緊急スクランブル体制等の備えをしましたが、幸いなことに何事もなくすぎていきました。生きている間にこのような事態に遭遇することはないと思います。が思い出したらそのころが懐かしく思いました。

 

 

 

コメント

タイトルとURLをコピーしました