須賀隆さんのwhenを使う

                                                                   Oct. 10, 2015作成 Feb. 23, 16 修正

 門外漢ながら,飛鳥時代の暦に興味を持って,須賀さんの門戸を叩いた。世界の多様な暦法を熟知しておられて,算術とプログラミングにも長けておられる。須賀さん作成のtcl/tkを使ったwindows版の暦計算ソフトwhenについて述べる。

0. 暦計算ソフト:  suchowan's Home Page から入る。左ペーンの最上部に,暦相互変換WHEN,がブリンクしており,ここをクリック。
1. インストール: このページの通りに実行すればいいのだが,tcl/tkについて,ちょっと悩みましたので,ここに示します。
 tcl/tkのインストールが必要とされるとのことで,当方が使っているGrassGISのtcl/tkのver.8.6への上書きが心配であったことと,すでにインストールされているtcl/tkが使えるのではないか,という思いがありました。それで,まずは,Calendar Converter when.exe for DOS/V (when298v.exe) だけインストールしました。この結果を覚えていないのですが,既存のtcl/tkが機能しませんでした。これはぼくのこの種の能力の欠落によるものです。
 で,まあいいか,と, Tcl/Tk Microsoft Windows 32bit 版(tcl/tk 8.0)tcl80.exe のインストール,を実施。whenについては機能しました。そして,GrassGISのtcl/tk版を動かしてみましたが,どうも問題が無いようです。
 なお,ぼくのハードとソフトの環境は,MacbookPro Retina 15"(2015年秋での最新版),Parallel Desktop内にWindows XP。

 追記: 理由はわからないが,コマンド出力がうまくいかなくなった。これで一日をつかった。Mac上のParallels Desktop内の全ファイルをTimeMachineで復元した。これに八時間余り。そして再インストールした。インストールそのものは問題無かったと思うが,問題はそのまま。もうお手上げ。
今回のインストールについてのトラブルを踏まえて,インストール法を確認する。
 初めてインストールした時にはマック上で,when298v.exe(これは解凍用の実行ファイルでこれをcontrol(mac上のParallels ではshiftキーも必要)  + クリック,で,解凍を実行),と,tcl80.exe(これそのものがインストール実行ファイル)をダウンロードして,まずwhen298.exeだけ実行して,使用できないので,後に,tcl80.exeを実行した。それで問題なく,所期の目的を達成できた。
 ところが,今回は,この方法では,ところが,setup.exeを実行すると,c:\DOCUME~1\ADMIN~1\デスク~1\WHEN298V\SETUP.INS,が無いとでてくる。たしかに,このファイルが解凍ファイル群にない。
一応と,Windows上でダウンロードした。マイドキュメント/ダウンロード/内にダウンロードされていた。このwhen298v.exeをこのディレクトリーに置いたままダブルクリックして解凍した。ただし,解凍ファイル群をまとめるフォルダは作成されなかったので,when298v,というフォルダをつくって入れた。主要ファイルは, WHEN.EXE Ver2.098β for DOS/Vと称されている。
 なお,インストールに問題があると考える場合,手動で関係ファイル群を削除せずに,コントロールパネルでプログラムの削除,で実行すべきである。

2. When操作ガイド: ぼくの使用法は,須賀隆さんに教えていただいた,コマンドを入力し,パネル最上部右手の青地のアイコンをクリックするだけ。結果のパネルが出る。これをコピペするだけ。

ぼくが須賀隆さんにお願いした内容も入った,ブログの中味をそのまま,次に示す。ただし,エクセルの画像は省略している。

2015/10/08 11:22

推古・持統朝(つまり元嘉暦)での二至二分のグレゴリオ暦を知りたいという話がありました。

たぶん一覧表になっていると便利なのでしょうが、いくつか方法があります。

・hosi.org の日本暦注検索
http://hosi.org の表紙の「日本(?,?)」の?から入る http://hosi.org/Note で
期間を「593..710 - 飛鳥」、暦注を「(日)廿四節気」「冬至」などとして検索
太陰太陽暦での日付の一覧が出ます。その日付をクリックすれば当該日の
グレゴリオ暦がわかります。いちいちクリックしなければいけないので面倒。

・when.exe MS-DOS版
whenhv +j1$g /(GXD) x 593 *y(110) s270
のようにして元嘉暦で593年から110年分の春分を計算してグレゴリオ暦・元嘉暦と
ユリウス通日で表示できます。32bit版の Windows からコマンドラインで実行する
必要があります。s0 は平均黄経0度の意味で、冬至では270,夏至では90,秋分では
180です。(X による表示の意味はこちら)

・計算式を Excel で計算
こちらの-697の式を Microsoft Excel で[1]計算するという手もあります。
Microsoft Excel の日付計算は、
- ユリウス通日ではなく1900年代の始めからの通日を使っている。
- 1900年3月1日以降しか有効でない。
などの制限があり、

の黄色の部分[2]の日付差だけユリウス通日を補正してかつ、2000年ゲタを履かせた
暦日を読むような工夫が必要になります。
(推古元(0593)-02-13春分のグレゴリオ暦0593-03-22を2593-03-22から読み取る)

外部のプログラムでは、
・wagoyomi.info の暦注検索
http://www.wagoyomi.info/kensaku.html が使えます。ただし、これで得られるのは
推古・持統朝ではユリウス暦ですから、その分(500年代で2日,600年代で3日)補正が
必要です。

[1] もちろん計算式を直接何らかのプログラムで組めるスキルがあればそれに越した
  ことはありませんが、以下はそうでない場合の話です。
[2] Mac版では別の値になるはずです。

2015/10/08 11:22付けのブログ引用,以上

3. 実行: ご指導のうち,ぼくの目的ではwhenを使うのが適している。
 2.で述べたように,whenのパネルで,commandの欄に,whenhv +j1$g /(GXD) x 593 *y(110) s270 を入れて,青地のアイコンをクリックすれば,
「元嘉暦で593年から110年分の春分を計算してグレゴリオ暦・元嘉暦と
ユリウス通日で表示できます。s0 は平均黄経0度の意味で、冬至では270,夏至では90,秋分では
180です。(X による表示の意味はこちら)

 上記の文で,こちら,とされているリンクを当初読み飛ばしていましたが,ここに出力の意味が記されている。

4. 出力例の意味

 前述の,こちら,での例では太初暦が示されている。
コマンドは,whenhv +c1$a /(Xk) U:0 V:-221 太初 1

出力の第1行目は,359.247  -103 2 19   1.4815  328.152  癸亥  -103 1 1  == 太初 1 1 1


順に,黄経の差*  朔の年月日 時.小数  太陽黄経* 干支**  太陰太陽暦 == 日本中国暦日

* 朔日の午前0時(地方時)の値
** 朔日の干支

とされる。

 元嘉暦の最初の出力例を見ると,
コマンド: whenhv +c1$g /(Xk) U:0 *m(13) V:-221 元嘉+ 22
出力: 352.494  445 1 25  14.7766  304.883  辛卯  445 1 1 == 元嘉 22 1 1

5. 当該関心データの例

 先のコマンドによる当方の593年冬至の出力結果を示す。
whenhv +j1$g /(GX) x 593 *y(110) s270
G 593 12 21 December 238.660 593 12 1 10.1489 249.924 丁酉 593 11 21 癸丑

変換西暦 冬至の日付 冬至の黄経の差 朔の年月日 時.小数 太陽黄経 朔日の干支 冬至の日付 冬至の干支
天文幾何学 天文幾何学
  元嘉暦冬至日のグレゴリオ暦表示 元嘉暦冬至日の太陽から反時計回りの月の位置(度) 元嘉暦(11月)朔日のグレゴリオ暦での年月日時刻 元嘉暦冬至日の春分点からの黄経(度)

元嘉暦11月朔日の干支

元嘉暦冬至日

元嘉暦冬至日の干支

グレゴリオ暦 593年12月21日 December 238.660

593年12月1日
10.1489時間

249.924 丁酉 593年11月21日 癸丑

 上の表の追加的説明 (Feb. 23, 2016): 
1. 第2列下段の「593年12月21日」はグレゴリオ暦での冬至日を示す。Decemberはゴミ。
2. 元嘉暦冬至日については,最終列(冬至の干支)とその手前の列(冬至の日付)に元嘉暦での日付などの情報が示されているが,「593年11月21日」の年表示に誤りがある。元嘉暦「11月21日」である。これが「癸丑 」とされるが,誤りで,「丁巳」である。「癸丑 」は元嘉暦11月17日にあたる。というわけで,最終列の「冬至の干支」についてはこのプログラムは問題がある。
3. 第4, 6列の「元嘉暦(11月)朔日」のグレゴリオ暦「593年12月1日」,「丁酉」は正しい。
4. 第三列の,月の位置の,238.660,であるが,238.66/360*平均朔望月29.53059,から月齢を求めることができる。元嘉暦冬至日が11月21日であるが,日単位しか表示されていないから,「238.66/360*平均朔望月29.53059 - 21」の計算結果について,日単位よりも小さい計算値を論じても意味はない。 ただ,元嘉暦で,月齢と日値がどれほど一致しているのかどうかは重要である。
5. 第5列の,「元嘉暦冬至日の春分点からの黄経(度)」= 249.924,は重要である。冬至は「暦ではそれが起こる日を冬至とするが、天文学においては、太陽黄経が270度となる瞬間を「冬至」と定義している。この場合、冬至の瞬間を含む日を冬至日(とうじび)と呼ぶ」が,元嘉暦では,春分点からの黄経 = 249.924度であるから,270-249.924 = 20.076度だけ,早めに取っていることになる。

黄経差238.660度について: この天文学的意味を確認すると,望(満月,月齢十五)が黄経の差が180度,つまり,月ー地球ー太陽となっている。つまり太陽は地球を串刺しした裏手にある。黄経差が270度の場合,下弦の月(月齢21〜22日)であるが,夜明け近くに下弦の月が南中している。元嘉暦は太陰太陽暦であり,月日の日は月齢に近いことを理想とするが,実際の月齢は,元嘉暦で11月21日ながら270-239=31度ほど遅れているということになる。

わかりやすい図が示されているサイト:
月の呼び名と月齢
国立天文台 > 暦計算室 > 暦Wiki

太陽黄経249.924度について: 冬至の黄経は270度である。しかしながら,このデータでは249.924度であるから,元嘉暦の冬至日は,天文学的には20度ほど早めになっていることになる。

わかりやすい図が示されているサイト:
国立天文台 二十四節気および雑節
国立天文台 > 暦計算室 > 暦Wiki > 季節
宇宙の科学
地球から見た星や太陽の一日の動き

 

なお,残念ながら,当方のwhenはコマンドオプションが機能していない。Parallelsを過去のものに復元して,新たにインストールしても結果は同じだった。

                                           以 上