本日は 2月の末日だが、今年は2005年だから 閏年では無い。
さて…、「西暦が4で割り切れる場合は閏年である。」
これは 閏年の基本的な定義で 誰もが知っている事。
しかし、閏年の正確な計算定義は 実は それだけでは無い。
「西暦が4で割り切れる場合は閏年である。」だが、
「100で割り切れる場合は閏年でない。」のだが、
さらに「400で割り切れる場合は閏年である。」 と言うのが正式である。
地球の公転周期が 約365.2422日の為、4年間で ほぼ1日(24時間)ズレるために行う誤差修正であるが、そのままだと400年で さらに1日ズレてしまう為の補正が必要となる。
以上の状況により、2000年の2月は閏年だった。
しかし、これから95年後の 2100年の2月は 閏年では無い。
人間の寿命を考えると 私が生きて2100年を迎える可能性は 限りなく少ない。
だから、こんな計算式等 どうでもいいと言えば それまでである。
約20年前 某生命保険会社の運用資産を管理するコンピュ-タ-・システムの制作に関わった事がある。
その時に システム内のカレンダ-を自らが管理するプログラムの仕様に 上記の閏年の計算式をプログラミングするようにユ-ザ-から指示された。
1980年代の話である。
2100年まで ほぼ120年も そのシステムが稼働しているとは どうにも考えられず、そこまでシビアさを要求するのか?と ユ-ザ-のシステム担当者に言ったら、
「それぐらいの精度を維持・管理するシステムの仕様を私が考案したんだ」
と、胸を張って断言され、強請された。
その10年後、ハ-ドウェアの驚異的な進歩により、1980年代では UNIXを使用し、汎用機を必要としたシステムが 1990年代には 一般人が購入する家庭用のパソコンですら 性能を凌駕するに至り、システムの入れ替えを提案したところ 同じ担当者から頑として拒否された。
「このシステムは 私があらゆる状況を想定してシステムを構築し、その後10年の間に 数え切れないほど仕様を付け足し、完全な状態を保持しているのだ…」と。
しかし、1999年になって コンピュ-タ-システムにおけるY2K(2000年問題)が世間一般で騒がれるに至り、その某生命保険会社のシステムを擬似的に 2000年状態にした試験を行った結果、システムは 見事に崩壊した。
1999年の時点には とっくの昔に 私はシステム・エンジニアという仕事からは離れていたが、元のシステム構築に携わった者の一人として協力を要請されたが、バカバカしくて断った。
「閏年の精度にまで 完璧を要求した担当者が構築したシステムなのである、Y2Kごときで 問題が生じるわけないでしょ」
私は 口では そう言って断ったのだが、正直言うと 心の中では「崩壊する」と信じていたからだ。
天下の生命保険会社が 資産を管理するためのシステムを20年前の設備で行い続ける事、自体が基本的に問題なのである。
20年前と言えば 今、全盛を誇っているWINDOWSも まだ、日本では完全に実用化されていない実験段階であり、UNIXを使っていれば まだマシではあるが、今のプログラマの多くが使いもしない コボルとかフォ-トランなんて言語でプログラミングされていたのである。
そう言った言語で記述されたシステムを 現在のハ-ドウエアに合わせた言語で記述し直す事を考えれば、システム自体を新たに設計し直して 一からやり直した方が 余程、効率的であり省力的でもある。
幸いにして2000年を迎える前に その会社のシステムは新たに構築されてY2Kで誤作動を起こす事は無かった。
しかし、2001年秋 別の会社に合併と言う名目で 事実上、吸収され 会社自体が姿を消した。
毎年、2月の末日になると その事を何故か思い出すので記した次第だ。