2000年問題

この記事は約4分で読めます。

1998年頃から、2000年になると各種コンピューターが誤動作するかもしれないと大騒ぎになっていた。インフラが破壊されてしまうだとかはもちろん、軍事システムが暴走して核戦争になるとかまで言っていた人もいた。まさに世紀末である。
1900年台はプログラムにかかわらず、一般的に下2桁で西暦を表すことが多かった。
Windows95、Windows98の年号についてもそうだ。4桁表記が一般的になったのは2000年からである。
コンピュータの世界でも西暦を省略することが多かった。コンピューター黎明期はまだまだメモリー使用を少しでも少なくしたかったし、入力担当者の負担を減らすため「19」を省略するためだ。画面サイズも小さかったので表示の2桁の文字を削るのもとても有効だった。
かなり古いプログラミング言語だと、そもそも「日付型」というのも無かった。
そのため古いPCだと99年の次は00年になってしまうので誤動作が起きるのだ。1999年の次が1900年と解釈されてしまう。

閏年についても問題があった。

  • 西暦の年が4で割り切れる場合は閏年
  • ただし西暦の年が100で割り切れる年は閏年ではない
  • ただし西暦の年が400で割り切れる場合は閏年

というややこしいルールがある。
西暦1900年は閏年ではないものの、西暦2000年は閏年だ。
この辺を中途半端に解釈した場合に障害が発生した。ポンコツエンジニアであれば上記の「ただし」を全く考慮に入れずに、単に4年に1回の閏年だけを計算させれば2000年問題は回避できた。実際にそういうプログラムも多かったようだ。もちろん2100年は閏年では無いので問題が発生する。
そのため2000年1月1日の0時と、2000年2月29日の0時が最も緊張する日だった。

この2000年問題は大きな問題と報じられ、ITエンジニアにとっては好景気で人が足りない状況だった。ちょうどITバブルの時期でもあった。
マスコミがそういった不安をネタに、ニュースサイトはもちろん雑誌や書籍等の販売が多くされた。Y2K問題とも言われていた。
確かに金融機関やエッセンシャルワーカーに属する企業は、万が一があるので準備に抜かりは無かったが、一般的な企業は右往左往するものの実はたいした問題では無かった。
テスト用の環境を用意して、日付を1999年11時55分くらいにして2000年になったらどうなるかを確認するだけだ。この頃の情報システム部門に所属する人たちは、当たり前の様に多くが自分でプログラムが書けたし、確認する場所も方法も当然分かっていた。

確かに一部のMS-DOSのプログラムや、Windows3.1は2000年問題に対応しておらず、正しく表記ができないものもあったが、PCの内部的には正しく時間を保持していたため、入力や表示を適切に修正することで事足りた。対応していなくても下2桁を1950年~2049年あたりに解釈されるよう手を入れる事で手抜きすることもあった。少々面倒だが難しい作業では無かった。Windows95からのソフトは、よほどのポンコツエンジニアが作ったもので無い限り問題はなかった。
ちなみに安田生命保険のシステムは、諸般の事情から神武天皇即位紀元である「皇紀」を採用していた事により2000年問題を回避できたと言われている。2024年は皇紀2684年なので、まだギリギリ84年である。
汎用機やオフコンと呼ばれるサーバーについて、1980年代から使っていたものについては、そこそこ大変だったと聞くが、いい加減リプレースすれば良いのに。。。という状況なので自業自得である。

実際に準備万端で2000年を迎えたのだが、いつもと変わらない日常でほぼ無風だった。一部のシステムで障害が発生したが、ケチってテストを適切にしなかっただけのように見えた。
もちろん当時の自分は、お正月休みも万が一のため自宅待機を命じられていた。企業によっては会社で年を越した人もいたようだ。
毎年、初日の出を見に行くのを楽しみにしていたのに行けず、折角の大イベントが逆に何も問題がなかったことで大変つまらなかった。
2月29日も同じで、全くもって問題がなかった。3月に入ったら2000年問題は完全に無かったことになっているくらい拍子抜けしたものだ。

ちなみに自分は2038年問題の方が気になる。多くのコンピュータは1970年1月1日0時0分0秒からの時間経過で日付を表現しているが、2038年1月19日3時14分7秒を超えると桁があふれて1970年1月1日0時0分0秒に戻ってしまう。
時間を32ビットで表していたときの名残だ。今はほぼ64ビット化されているが、OSに近い部分なので残ってしまうシステムがあるだろう。32ビットのままでも対策方法はあるのだが、リプレースされることを祈る。
ちなみに64ビットだと西暦2922億7702万6596年までは大丈夫である。宇宙の誕生からよりも遙かに長い。人類が滅亡している方が確立は高そうだ。

そうそう2025年は昭和100年に相当する。こちらもシステムを昭和2桁で管理していたときの名残だ。昭和100年問題とか言われているが、さすがに全然盛り上がっていない。

コメント