コラム「正17角形と正18角形」で西暦2010年問題(?)を取り上げたのだが,グレゴリオ暦の閏年とか,閏秒とかそういうことは一切無関係の記事であった.その後,阪本ひろむ氏より本来の2010年問題についての解説メールが送られてきたので紹介する.
===================================
【1】阪本氏のコメント
本来の2010年問題はセキュリティ・暗号化の問題のようだ.暗号化は乱数と密接な関係にあり,乱数のシードとしてyyyymmddhhttmm が用いられることがあるので,この関係であろう.
ソフトウェア業界では他にもXXXX年問題というのがあったと思う.2000年問題のときは年号の四桁を二桁に略することが問題なのであった.年号二桁だと,2000年を超えたとき実際の時間とデータの時間が逆転してしまう.UNIXの有名なプログラムSCCS(プログラムのソースコードを変更日時と差分を含めて管理するプログラム)も2000年問題を抱えていた.2000年を迎える前に,SCCSは同じ機能をもった他のプログラムにとってかわられた.
元の勤め先でも1999年末から2000年元旦にかけてこの問題の対処のため常駐する者がいた.2000年が過ぎると,プログラマは再び年号の下二桁のみを用いるようになった.のど元過ぎれば熱さ忘れる.
カレンダーを作成するプログラムは,よく新人教育の課題として出題される.しかし,誰一人完全なプログラムを作ったひとはいないだろう.グレゴリオ暦は閏年などに難しい決まりがある.この変則的な年を迎える前にプログラマはリタイアするので自分のバグは知らないわけだ.
「ルバイヤート」の作者,オマル・ハイヤームはグレゴリオ暦より優秀な太陽暦を発明したそうだが,それが普及していたらどうなっただろう.彼は単に酒を飲んで人生のむなしさを嘆いていただけではない.それ故,彼は偉大なのだ.
===================================
【2】暦学アラカルト
古代バビロニア人は1年=360日と考えていたようである.この考えがいまの弧度法に繋がると推察されている.古代エジプトでは1年=12月=365日の暦が使われていたのであるが,観測精度が向上し1年=365.25日までわかっていたため,プトレマイオス3世は閏年を設定することを命じたそうである.
一方,ローマで使われていた暦は1年=10月=304日で,これではたちまち狂ってしまう.シーザーはエジプト暦が優れていることを知り,1年=12月=365.25日とし,4年に1度閏年を置いた(ユリウス暦).
しかし,4年に1度の閏年でも長期にわたるとズレが生ずるため,1582年,教皇グレゴリオ13世は閏年は400年に97回とする改暦を行った.これにより100の倍数であるが400の倍数でない年は閏年としない(西暦2000年は閏年).これが現在のグレゴリオ暦である.
(1)4の倍数の年を閏年とする
(2)ただし100の倍数の年は閏年にしない
(3)特別に400の倍数の年は閏年にする
===================================