福島中年探検隊
このページは 2002 年 12 月に書いた物です
時間とカレンダー
天體のドラマ(プロローグ)
數學や天文學の敎養はサッパリありません。 しかし萬年カレンダーを作る作業は時間の考へ方を避けて通る訣にはいかないのです。 そもそも日附って何でせうか。 時計は何うして時間を刻むことが出來るのでせうか。 其處に見えて來たのは豫想もしなかった大きな世界でした。
カレンダーを作る魅力
コンピュータ内藏の時計は時間、それも通常は秒數だけなのです。 或る一點を始點として、其處から 1 秒每に數字を積み重ねてゐる。 それをカレンダーのやうな日附にするには、數字(秒數)から日や月を割り出さなければなりません。 面倒なやうですが一定の時間で增え續ける數字(秒數)は、過去から現在までの「ある一點」を切り出すには便利なものなのです。 でも、カレンダーは現在の時間を基準にして未來を描かなければなりません。
カレンダーは日が聯續して增えて行くだけだから、秒數と同じだらう。 ところが閠年があるために、月を何處で區切るかが問題になります。 これは有名な「 4 年に一度、100 年に一度、400 年に一度」といふ ツェラーの公式 で求められます。 うちの JavaScript 版では、これを使ってゐます。 そのツェラーの公式を生んだのは天體の運行、つまり過去の宇宙です。 この觀測によって「曆」が出來ました。
過去の宇宙は未來を豫言する。 そのささやかな形がカレンダーになってゐると思ってゐます。
2000 年は閠年
いはゆる 2000 年問題の元兇です。 この問題の一つは、コンピュータが扱ふ日附表記のうち「年」を 2 桁で表はしてゐたことによります。 PC が未だ 4bit や 8bit の時代に「さう決めた」。 例へば 1999 年を 99 と表記してゐました。 2000 年になると繰り上がって 100 になり下二桁は 00 (ゼロ)になるのですが、ゼロを認識できないケースがあるので困ったわけです。 (ゼロを認識しても 1900 年として仕舞ふから餘計拙い)
それよりもっと困ったのは 2000 年が閠年だったのです。 通年に比べて 1 日多い。 これは困ります。 コンピュータは通年通りの日附を返してきます。 現在のグレゴリオ曆ではツェラーの公式によって次のやうに定められてゐます。 これは地球が太陽を 1 周(公轉)するのに掛かる時間が 365 日ちょうどではないことによります。
- 西曆が 4 で割り切れる年は閠年である。
- しかし 100 で割り切れる年は閠年ではない。 これに據って 2000 年は閠年ではない。
- ところが 400 で割り切れる年は閠年である。 ゆゑに 2000 年は閠年である。
さう、最後の「 400 年に一度」の事が起きたのが 2000 年でした。
ひとことで言ふと現在のコンピュータの仕組みを作った當時、半世紀も先の西曆 2000 年の事まで考へてゐなかった、といふ事です。 最初はプログラマの怠慢でもあったのですが、途中からは分かってゐても直すのが容易ではないほどの規模になってゐた、といふのが本當のやうです。 最初の時點ではコンピュータの性能的に「 2000 年問題」まで考へろと言ふのは無理だったかもしれません。 そのうち直せばいいや、で始めたツケを世紀末に一度に拂ふ事に。
1 秒の話 うるふ秒
さて、データセンターのサーバから うちのボロパソコンまで内部時計は「秒」だと書きました。 タイマーはもっと小さな値ですが、秒とは何でせうか? 時間の單位ですから何かの周期です。 昔は地球の公轉周期(約 365 日)を一定の數で割ったものを 1 秒としてゐました。 ところが地球の公轉や自轉の周期は年々遲くなります。(嚴密には遲くなるだけではありませんが) もちろん 100 年ぐらゐでは氣附かない程度です。 といふ事は人の一生ぐらゐでは影響ありません。
現在ではセシウム 133 といふ元素の原子が振動してゐる周期を定數倍したものを 1 秒としてゐます。( 1967 年以降) しかしこれは大きな轉換點でした。 それまでの地球の自公轉といふ目に見える觀測から一氣に 10 のマイナス 9 乘といふ世界へ入ったのです。 セシウム原子時計は實際の天文學的な觀測時計(曆)と少しづゝズレて行きます。 それでたま~に 1 秒を足したりしてゐます。 例としては、1999 年 1 月 1 日 午前 8 時 59 分 59 秒の次に 1 秒(うるふ秒)を足して 59 分 60 秒といふ時間が存在することになります。
時間が長くなった? さうではなく地球の動きに合はせただけで時間( 1 秒)の長さは變りません。 といふことは秒といふ單位が絶對的な正確さを誇るに從つて、私たちの時間は相對的に增えたり減ったりします。 つまり、時間とは量の變るものだといふ事になります。 地球の動きが變動してゐる限りは。
10 億分の 1 秒の宇宙
- うちの電波時計

正確な秒(時間)が測られようと、暜段の生活に何も影響しないのでは? 例へば北極星が眞北にあるとは限りません。 25,800 年かけて北極星は周囘してゐます。 いや、地球の囘轉軸が動いてゐるためです。 25,800 年の 1 秒に何の意味があるのでせうか。 大航海時代ならともかく、現代の私たちには關係ありさうには思へない。
ところが衞星との通信などでは 10 億分の 1 秒は大きな誤差になります。 今の自動車では GPS 衞星を使ったカーナビがよく使はれてゐます。 GPS 衞星を簡單に言ふと原子時計を積んでゐて、その時間を發信してゐる。 民生用は意圖的に精度を落としてゐるさうです。 航空機運行やミサイル彈道計算などが本來の目的ですが、10 億分の 1 秒は地上で約 30 センチの誤差になって現れます。 これが原子力發電所の融合爐だと危機的な狀況になるかも知れません。
そもそも地球が太陽の周りを 1 年かけて 1 周(公轉)するスピードはどれぐらゐだと思ひますか? 時速にすると約 100,000km/h (拾萬キロ每時)。 地上の音速(マッハ 1 )が約 1,200km/h ですから、桁違ひのスピードで宇宙空間を飛んでゐることになります。 さういふレベルでは 10 億分の 1 秒も意味を持ちます。 原子が刻む時計は、まさに宇宙への入口だったのです。
- 參考
- 音速は單純に比較すると、地球が自轉する赤道上のスピード(約 1,700km/h )より遲い。 ちなみに最近 NASA の火星探査機が着陸に成功したといふニュースが話題になりました。 スポークスマンによると、
ゴルフで言えば、NASA から東京へホールインワンしたようなもの
ださうです。
聞きかじりのサル知恵(エピローグ)
セシウム原子と電子の動きは、極小の世界でありながら廣大無邊の宇宙と同じ仕組みださうです。 地球の周囘運動(時間)は、遙か遠い未來の何時か止まるでせう。 しかし、そのとき宇宙も止まるのか。 そんなことはないと思ふ。 地球の時間とは別の時間があるやうな氣がしました。 地球がある銀河系の直径は約 10 萬光年。 1 萬光年の彼方にある星を夜空に見ることができます。1 萬年前の星を「今」見てゐるのです。 その光の速度※は、どんな時間系でも變ることがありません。 さう、星は過去から現在への贈り物だったんです。
一年に一度、パソコンに向かひながら壯大な宇宙の時間の流れに想ひを馳せる。 斯う思ふと、なんだか樂しくなりませんか。 あんまり人には言へませんけどね。
- ※「全ての慣性系は相對的である」かつ「全ての慣性系において光の速度は不變(絶對的)である」といふ特殊相対性理論( 1905 年、アインシュタイン)。 これに據ると光の速度に達したとき「時間は停止」します。 時間も相對的だからです。
つけたし
- コソッとひとりごと
- たいていのプログラム言語には 1 秒每に增え續ける數字から日附を割り出す函數が組み込まれてゐます。 なのでツェラーの公式なんか使はなくても簡單にカレンダーが出來ます。 しかし中年(老年)「ヘボ」プログラマは餘計な事を考へてしまふのが特徵であります、です。
-
- 「年」を 2 桁で表はしてゐた
- 身近なプログラム言語の JavaScript でも現在の「年」を返す函數
getYear()
は 1900 年を 0 として例へば 1985 年には 85 を返して來ます。 1999 年に 99 を返し、2000 年になると繰り上がって 100 を返す。 從來の「二桁處理システム」だと、これは 0(ゼロ)に等しい。 ゼロを認識する場合、1900 年と看做すから問題になりました。 とは言へプログラム的には修正が面倒なだけで難しくはありません。
- 函數
getYear()
に替へ getFullYear()
を使用する事で囘避できます。
- おまけのオマケ
- 時間を刻む時計は太陽の位置によって方角を知るには必要なので、山登りでも使ひます。 ざっとの方角を知るだけなら百圓均一のデジタル時計でも良いのですが兔も角、經度は時計がないと測れません。
- 北アルプス 劔嶽登山のツイート
- 閠年を決めてゐる日本の法令
-
- 明治三十一年五月十一日 第九十號敕令
- 朕閠年ニ關スル件ヲ裁可シ茲ニ之ヲ公布セシム
- 神武天皇卽位紀元年數ノ四ヲ以テ整除シ得へキ年ヲ閠年トス但シ紀元年數ヨリ六百六十ヲ滅シテ百ヲ以テ整除シ得ヘキモノノ中更ニ四ヲ以テ商ヲ整除シ得サル年ハ平年トス
- 明治五年( 1872 年)に天保曆から西洋式の太陽曆に改曆(明治五年十二月三日を明治 6 年 1 月 1 日に)した際は閠年は 4 年に一度としか決められてゐなかった爲、明治三十一年( 1898 年)になって現在と同じに改められました。 4 年に一度の閠年は皇紀でも違算が出ないのですが 100 年、400 年の方は皇紀から 660 を引けと書かれてゐます。 つまり西曆で計算。
- 尚、この敕令は現在も生きてゐるやうです。
- 改曆について
-
- 謝辭
- 冒頭のアイキャッチ畫像は 牛飼いとアイコンの部屋 から頂きました。 斯う云ふ畫像をウェブページの最初の方に插入する手法は最近のウェブデザインのトレンド(笑)ださうです。
- Script: RYU's® 2002/12/24
春分日と秋分日
地球の動きが變動しないと假定して、國民の休日の中で唯一計算で求められるのが春分・秋分の日です。 計算で求められた結果は理論上觀測結果と一致※しますが、それが祝日になるか何うかは法律(前年 2 月の官報)に依ります。 しかし計算日以外で決まった事は今までにありません。
- ※實際には 10 分ほどの「搖れ」があって、これが永年のうちに日附の變はるところに掛かる事があるので嚴密には一致するとは限りません。
- 春分・秋分簡易計算式( y の範圍: 西歷 2000-2099 年)
-
- 春分日
- JavaScript:
Math.floor(20.69115+0.242190402*(y-2000)-Math.floor((y-2000)/4)
- 秋分日
- JavaScript:
Math.floor(23.09+0.242190402*(y-2000)-Math.floor((y-2000)/4)
Math.floor()
は小數點以下を切り捨てた整數(最大の整數)を返す函數です。 上記の計算式で「日」が求められます。
-
- 實行結果
- JavaScript が無效のやうです。
- 今年の干支
- JavaScript が無效のやうです。
- 關聯ページ
-
-
- ご意見ご感想など

メールのヘルプ
2017/12/26 三宅龍太郎 (©2017 MIYAKE_ryutaro)