こんにちはsaiです。
皆さんは2000年問題をご存知だろうか。私達コンピュータを扱う会社にとっては結構対策やらで忙しかった。弊社で使用のSTW装置(サーボ位置情報を書き込む装置でServo Track Writingと呼ぶ)と呼ばれる工程で使っていたものが年表示を2桁のものだったのです。
その他の装置の洗い出しも行いバージョンアップすることで対策を行いました。幸い年が明け2000年になっても影響を受けることがなかったので幸いでした。意外にこの問題って世の中結構騒いだ割には大した被害が無かったようです。あの騒ぎはなんだったんだ。
2000年問題(Y2K問題)とは何か
原因
コンピュータシステムの内部で、日付を扱う際に西暦の下2桁のみを取り扱い、上位2桁を省略しているのが原因で問題が生じる。この他に、置閏法に対する誤解から西暦2000年を「平年」として扱ったことが原因で、西暦2000年2月29日に誤動作する問題が生じる。
年表示を2桁に限っている場合
直接の原因は、プログラム内で日付を扱う際に西暦の4桁のうち、上位2桁を省略し、下位2桁だけを処理対象にしたことである。
古い電算システムを構築するのに用いられたCOBOLやFORTRANのような古いプログラミング言語では、データ型に「日付型」が用意されていない。従って、プログラム内では、年を表現するために2桁の文字型を割り当てて、西暦表示4桁のうち下位2桁を記録・処理した。この方式では2000年が内部で00年となるので、これを1900年と見なしてしまい、例えば「レコードを日付順に並べ替える処理をすると、順序が狂う」などの誤作動を起こす可能性があるとされた。(wikipediaより)
・・と言うように昔は4桁西暦を2桁に省略してプログラムを作成したのでこんなに古いプログラムが長く使われるとは思ってもいなかったので、2000年問題が起こることすら考えもつかなかったのでしょう。当時の作成したプログラマーも予測も出来なかったはずです。いずれにせよバージョンアップすればほとんど解決出来てしまう事例でした。
Leave a Reply