RYU's HOME P@GE

福島中年探検隊

このページは 2002 年 12 月に書いた物です

時間とカレンダー

天體のドラマ(プロローグ)

數學(すうがく)や天文學の敎養はサッパリありません。 しかしを作る作業は時間の考へ方を避けて通る(わけ)にはいかないのです。 そもそも日附(ひづけ)って何でせうか。 時計は何うして時間を刻むことが出來るのでせうか。 其處(そこ)に見えて來たのは豫想(よそう)もしなかった大きな世界でした。

カレンダーを作る魅力

コンピュータ内藏の時計は時間、それも通常は秒數(びょうすう)だけなのです。 或る一點(いってん)始點(してん)として、其處(そこ)から 1 秒每に數字(すうじ)を積み重ねてゐる。 それをカレンダーのやうな日附(ひづけ)にするには、數字(すうじ)(秒數)から日や月を割り出さなければなりません。 面倒(めんどう)なやうですが一定の時間で()(つづ)ける數字(すうじ)(秒數)は、過去から現在までの「ある一點(いってん)」を切り出すには便利なものなのです。 でも、カレンダーは現在の時間を基準にして未來を描かなければなりません。

カレンダーは日が聯續(れんぞく)して()えて行くだけだから、秒數と同じだらう。 ところが閠年(うるうどし)があるために、月を何處(どこ)で區切るかが問題になります。 これは有名な「 4 年に一度、100 年に一度、400 年に一度」といふ ツェラーの公式 で求められます。 うちの JavaScript 版では、これを使ってゐます。 そのツェラーの公式を生んだのは天體(てんたい)の運行、つまり過去の宇宙です。 この觀測(かんそく)によって「(こよみ)」が出來ました。

過去の宇宙は未來を豫言(よげん)する。 そのささやかな形がカレンダーになってゐると思ってゐます。

2000 年は閠年(うるうどし)

いはゆる 2000 年問題の元兇(げんきょう)です。 この問題の一つは、コンピュータが扱ふ日附(ひづけ)表記のうち「年」を 2 桁で表はしてゐたことによります。 PC が未だ 4bit や 8bit の時代に「さう決めた」。 例へば 1999 年を 99 と表記してゐました。  2000 年になると繰り上がって 100 になり下二桁は 00 (ゼロ)になるのですが、ゼロを認識できないケースがあるので困ったわけです。 (ゼロを認識しても 1900 年として仕舞(しま)ふから餘計(よけい)(まづ)い)

それよりもっと困ったのは 2000 年が閠年(うるうどし)だったのです。 通年に比べて 1 日多い。 これは困ります。 コンピュータは通年通りの日附(ひづけ)を返してきます。 現在のグレゴリオ曆ではツェラーの公式によって次のやうに定められてゐます。 これは地球が太陽を 1 周(公轉(こうてん))するのに()かる時間が 365 日ちょうどではないことによります。

  1. 西曆が 4 で割り切れる年は閠年(うるうどし)である。
  2. しかし 100 で割り切れる年は閠年(うるうどし)ではない。 これに據って 2000 年は閠年(うるうどし)ではない。
  3. ところが 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 から東京へホールインワン(Hole in One)したようなもの ださうです。

聞きかじりのサル知恵(エピローグ)

セシウム原子と電子の動きは、極小の世界でありながら廣大(こうだい)無邊(むへん)の宇宙と同じ仕組みださうです。 地球の周囘(しゅうかい)運動(時間)は、(はる)か遠い未來の何時か止まるでせう。 しかし、そのとき宇宙も止まるのか。 そんなことはないと思ふ。 地球の時間とは別の時間があるやうな氣がしました。 地球がある銀河系の直径は約 10 (まん)光年。 1 (まん)光年の彼方にある星を夜空に見ることができます。1 萬年前の星を「今」見てゐるのです。 その光の速度は、どんな時間系でも(かわ)ることがありません。 さう、星は過去から現在への(おく)り物だったんです。

一年に一度、パソコンに向かひながら壯大な宇宙の時間の流れに想ひを馳せる。 ()う思ふと、なんだか樂しくなりませんか。 あんまり人には言へませんけどね。

つけたし

コソッとひとりごと
たいていのプログラム言語には 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 を引けと書かれてゐます。 つまり西曆で計算。
尚、この敕令(ちょくれい)は現在も生きてゐるやうです。
改曆について
謝辭
冒頭のアイキャッチ畫像(がぞう)牛飼いとアイコンの部屋 から頂きました。 ()う云ふ畫像(がぞう)をウェブページの最初の方に插入(そうにゅう)する手法は最近のウェブデザインのトレンド(笑)ださうです。
春分日と秋分日

地球の動きが變動(へんどう)しないと假定(かてい)して、國民の休日の中で唯一計算で求められるのが春分・秋分の日です。 計算で求められた結果は理論上觀測(かんそく)結果と一致しますが、それが祝日になるか(どう)うかは法律(前年 2 月の官報)に依ります。 しかし計算日以外で決まった事は今までにありません。

春分・秋分簡易計算式( 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)