====== 暦相互変換プログラム Ver 2.081 for MS-DOS, PC9801 & IBM-PC ====== (C) suchowan@mix.or.jp 1994.09.02 ======================================================================== 【取扱説明書】  本プログラムは、各種の暦の間の相互変換を行います。 ====(1)= when をすぐ使いたい方ヘ ======== 1) もっとも簡単な使い方 単純に MS-DOSのコマンド入力待ち状態(例えば A>のようなプロンプトの後 ろでカーソルが点滅している状態)で when(ret) と打ち込んでください((ret) は改行キーまたは(機種によっては)実行キーやEnterキーを打鍵することを表し ます)。このようにすると当日の各種暦法を表示します。システムのオープニ ング・メッセージ向きです。 2) 標準的な使い方 when オプション /変換先暦法 変換元暦法による日付(ret) とし、暦の相互変換に使用するのが、最も標準的な使い方です。例えば、MS- DOSのコマンド入力待ち状態で、when /G 慶長 5 9 15(ret) と打ち込むと、関 ケ原の合戦の日のグレゴリオ暦日が表示されます。この場合オプションはなく、 /G の‘G’がグレゴリオ暦法への変換の指示、‘慶長 5 9 15’が変換元であ る日本暦日による日付の指定です。日本暦日による日付の指定にあたっては、 年号・年・月・日をスペース(半角でも全角でもよい)で区切って指定しま す。また年・月・日は半角の数字を用います。 変換元暦法の指定については3章、変換先暦法については4章、その他のオ プションについては5章で詳しく説明しています。 3) 高度な使い方 添付の demo.bat は when の使い方のデモプログラムです。これを実行しつつ、 本資料をリファレンスマニュアルとして参照してみてください(次々と表示が流 れ実行内容を確認できない場合は、コントロールキーを押しながら'S'キーを押 すと実行を一時停止します)。また、1〜15.bat をエディタで開いて眺めてみる のも良いでしょう。 | デモンストレーション用バッチファイルは以下の様に指定すれば起動します。 | demo whenlt(ret) (軽量版の場合) | demo when(ret) (標準版の場合) | demo whenhv(ret) (高機能版の場合) | 環境変数領域に余裕がなく、正常に動作しない場合は、config.sys に | shell=c:\command.com /P c:\ /E:1024 | のような行を追加し、/E オプションの値を適当に設定してみてください。 | (MS-DOS V3.1 までは環境変数用の領域のパラグラフ数(16バイト単位)、 | MS-DOS V3.3 以降は環境変数用の領域のバイト数) 4) ヒストリ機能のある環境を推奨  when はほとんどすべての指定をコマンドライン(*)から入力するようにでき ていますので、高度な使い方をする場合はヒストリ機能のある環境が必要です。 Vz Editor や MS-DOS V5.0 以上 に添付される doskey などのツールを併用す ることをおすすめします。特に Vz Editor を常駐させて使うと表示内容をバッ クスクロールして見ることができますので、demo の動作の確認にも有効です。 (*)A>のようなプロンプトの後ろでカーソルが点滅している状態で(ret)により 入力される1行をコマンドラインといいます。 5) フリーの年号辞書を推奨  when は年号の読みを記憶していないため、年号検索を行う場合、日本語フロ ントエンドプロセッサを用いて、年号を漢字で指定する必要があります。年号 の読みに付いては、NIFTY-Serve の FREKISHI や PC-VAN の SIG REKISI など に、有志の方々がフロントエンドプロセッサ用データをフリーで登録されてい るようですので、そういったデータを使用されることをおすすめします。 また、本プログラム内蔵の年号は when !(ret) と打ち込むとすべて表示され ます。これは標準出力ですから、jgawk などのテキスト処理ツールに取り込ん で容易に辞書データに変換できるでしょう。 6) 文献引用について  本プログラムは、作者が週末の暇がある時に僅かの時間を割いて作成してい るものです。引用した研究のオリジナリティは引用している各文献にあります。 また、データ情報のチェックレベルもその時間の中で可能な限りのものです。 従って、本プログラムを使用して研究を行い、論文を発表される際には、でき るだけ本ドキュメントに示す元資料を参照され、参考文献としては元資料の方 を「必ず」提示されるようにお願いいたします。  暦法・暦注撰日法や天体位置計算式は、著作権法にいう規約・解法に該当す るため、同法の保護対象となりません。しかし、古文献を調査照合し、或いは 天体観測を行うに費やされた労力は想像するに余りあります。謝辞を付けよう とされる場合は、本プログラムの示す元資料の方に対しての謝辞を付けてくだ るようお願いいたします。 ^^^^^^ 7) 精度について  プログラムの形態で配布されているため、書物と違い出力の精度を注で示す ことが困難です。ドキュメントには必要十分なだけの精度に関する情報を書き 込んでいるつもりですが、情報自体の理解に暦に関する知識が必要な場合もあ ります。末尾に添付した参考文献を利用し、十分動作をご理解の上使用される とよいでしょう。また、拡張子が rsc のファイルを使用する際、ファイル中に、 コメントとして精度に関する情報を書き込んである場合がありますので、内容 を確認されるとよいでしょう(特に、com.rscを使用される場合は、必ずコメン トを読んでください)。 ^^^^^^^ また、インドやインドネシアでは、さまざまなヴァリエーションの暦が流通 している(或いは「していた」)ようです。本プログラムで収録したものは、 その一部(もっともメジャーなものであると期待してはいますが)にしかすぎ ないでしょう。より詳細な調査には、現地でのフィールドワークが必要なこと は当然で、素人に手がだせる領域ではありません。ユーザによるカスタマイズ に期待します。 8) 暦注と迷信  V2.05 までは、機能が多ければ多いほど良いという発想で、無自覚に機能を 追加してきましたが、最近ようやく、いまだに古い暦注や占いの類を本気で信 じている人々がいるらしいということに気づいてきました。機能の追加は「ア ルゴリズムが面白い」という理由でなされたものが多かったのですが、そうい う人々にとっては「計算が面倒な暦注ほどありがたみがある」という風に見え るようです(そして、面倒でない暦注は迷信と言う−安楽庵策伝の『醒睡笑』 [1]巻の一に出てくる棹で星を落とそうとする小僧とその師匠を思い浮かべてし まいます)。本プログラムが現代の暦の暦注表示や占いのために使用されるこ とは本意ではありません。  V2.06〜V2.07では、古い暦を再現できるようにと暦注に関する情報を大量に 盛り込んだため、さらに危険が増しました。そこで V2.06以降太陰太陽暦でデ フォルトでは六曜を表示しないようにし、さらにV2.07以降 chu.rsc でもデフォ ルトでは現代の暦の暦注を表示しないようにしました。 9) V2.0以降の注意 V2.XX は標準版(when.exe)と軽量版(whenlt.exe)(以上はMS-DOS汎用)及び 浮動小数点使用機種依存版(whenhv.exe-PC9801シリーズ専用版及びIBM-PC互換 機日本語環境版)からなります。 以下の説明はPC9801シリーズ専用版(以下「98版」と略記)に基づいて行い ます(98版を他機種で使用する場合については、環境変数87の項目をご覧くだ さい)。IBM-PC互換機日本語環境版は機能的には98版と同等で、IBM-PC互換機 上の日本語環境で動作します。その他の版における制限は以下の通りです(た だし、ヘルプ機能は標準版だけにある機能です)。 標準版 : 汎用化のため、浮動小数点計算を使用している部分が削られている。 (when.exe) 1) 中国太陰太陽暦(「旧暦」の類−節月及び関連する暦注を含む) 2) インド太陰太陽暦 3) ユダヤ暦 4) フランス共和暦の春秋分が近似計算 5) 太陽・月及び惑星、恒星の位置計算 軽量版 : 標準版に対してさらに以下の暦及び機能が削られている。 (whenlt.exe) 軽量であるので起動が速い。通常の用途にはこれで十分。 6) 中国暦日・四分暦 7) タイ暦 8) 在位表による検索 9) 年号文字列のカスタマイズ V2.07 ではプログラムサイズ削減のため、環境変数 PATH 上のディレクトリ でなく、環境変数 WHENPATH で指定するディレクトリで、参照ファイルを検索 するように変更しましたので注意してください。 V2.072 ではインド暦における日の出時刻の指定方法が変更されましたので注 意してください。 ====(2)= サポートする暦 ======== << ユリウス通日 >> フランスの Josephus Justus Scaliger (AD1540-1609)が父親の名前にちなん で名付けた日付の通し番号で、ユリウス暦の4713BC1月1日世界時正午を起点(第 0日)として数えた日数に相当します(小数部をも考慮する場合は、日本時間午 後9時に小数点以下が 0 になるものと考えてください)。単に「ユリウス日」 ともいいますが、ユリウス暦日(ユリウス暦での日付)と紛らわしいので、こ こでは「ユリウス通日」と呼ぶことにします。紀元前4713年の意味については、 1.bat#60を参照してください。サポートする範囲は 32bit 整数で表現可能な日 数であるプラスマイナス500万年程度です。つまりこの範囲で各暦法の定義に基 づいて計算が行われます(計算の精度に問題がある暦法は、個別に制限事項を 記述しています)。 << 日本暦日 >>  日本で明治5年12月2日まで使用されていた太陰太陽暦です(ただしそれ以後 の部分についても、年号<=>西暦の変換のみサポート)。  日本暦日には人為的な変更が多く、暦法をそのままプログラム化するという 訳には行かず、研究者の作った表に頼らざるをえません。本プログラムでは、 『暦の百科事典』[2]巻末付録を元にしています(V2.0a3まで使用していた『暦』 [3]よりも、参照している『日本暦日原典』の版が新しいため−ただし弘仁11年 2月については、直接『日本暦日原典』第4版[4]で修正し、V1.X の時代に戻り ました)。サポート範囲は、推古元年から明治5年です。文献[3]と日付に相違 があるのは以下の11か所です(「←」は朔を前日に移動、「→」は朔を翌日に移動)。 このうち延暦9年分以降の「→」は、大衍暦の進朔判定が不明確であるための曖昧 性(進朔については china.doc で説明)で、『日本暦日便覧』[5]では旧バー ジョンと同じになっています。当時の計算技法の不確実性、文献資料の信頼性 等によりこのような異同はまだ潜在していると考えておいた方が良いでしょう。 舒明 13年 (AD641年) 8月 ← 斉明 7年 (AD661年) 6月 ← 持統 6年 (AD692年) 11月 ← 文武 2年 (AD698年) 10月 → 延暦 9年 (AD790年) 3月 → 延暦 10年 (AD791年) 5月 → 大同 2年 (AD807年) 10月 → 弘仁 1年 (AD810年) 11月 → 弘仁 9年 (AD818年) 5月 → 弘仁 14年 (AD823年) 10月 → 天長 5年 (AD828年) 9月 → 改元の日付は三省堂のコンサイス世界年表[6]に拠りました。源平争乱期と南 北朝時代については、それぞれ源氏方と平氏方及び南朝と北朝の年号を表示し ます(ただし白鹿はサポートしていません)。南朝の「文中」改元は日付が不 明になっていますので仮に4月1日にしてあります。バージョン2.01から、明徳 3年閏10月5日までバージョン1.Xに較べ1日長く「元中」年号を表示するように 変更しました。これは中国暦日表示の原則に合わせたためです。他の時代にも、 京都で次年号に改元後関東等で使用されていた年号があるようですが、京暦に 従いました。また関東の三島暦では天正10年に閏12月がありますが、京暦では 天正11年に閏1月があり、年初が1か月ずれています[7]。これも京暦に拠りま した(1990年NHK「歴史誕生」で話題になりました)。弘文天皇の在位の解 釈により天武天皇元年が1年食い違う史料もありますが(というか弘文天皇は 明治になってから認められた天皇なのでたいていの古文献では1年ずれているは ず)、やはりコンサイス世界年表に従ってAD673年を天武元年としています(指 摘してくださったykawazoeさんありがとうございます)。どうしても日本書紀 [8]に合わせたい場合は、whenhv.exe と shoki.rsc を組み合わせて使用してく ださい。ただし、shoki.rsc は多量の浮動小数点計算を行いますので、コプロ セッサのない環境では耐えられないほど遅くなるかもしれません。 明治以前の改元は「○○XX年を□□元年とする」という形式で行われました (つまりその年の元旦に遡って効力を持つ)から、日記や書簡のような性質の 資料を除いて、改元の日付より前に遡って新年号が記載されることがあります。 古文献をチェックする時には配慮が必要です。 V2.01 以後、中国暦日に合わせて天皇諡号を表示できるようにしましたが、 代始改元(独断により代始改元とは即位の翌々年までに行われた改元とみなし ています)がある場合は、改元時に対応する天皇諡号も改めるようにしたため、 必ずしも在位期間とは一致しません。 << 中国暦日 >>  秦の始皇帝(ファーストエンペラー)の中国統一から、清の宣統帝(ラスト エンペラー)の退位までの期間(ただしそれ以後の部分についても、民国紀元 <=>西暦の変換のみサポート)の中国暦日です。詳細は china.doc をご覧 ください。 << 四分暦 >>  中国の古代に使用された1年を365.25日、19年を235か月とする太陰太陽暦で す。詳細は china.doc で説明しています。 << ユリウス暦 >>  AD1582年10月4日(カトリック教国の場合)まで使用されていた4年に1回閏年 を置く太陽暦です。本プログラムでは紀元前1年を0年と表記します。 季節との関連は全く無くなってしまうものの、紀元前約500万年まで暦法の 定義に従った計算が可能です。本プログラムでの「ユリウス暦」は施行状態と 関係なく、無限の過去まで日付を割り当てるための便法であると割り切ってい ただいた方がよいでしょう。  ユリウス・カエサルがユリウス暦を制定した45BCは、年初の調整のため15か月 になっています。またその後も閏年の置き方に幾らか問題があったようで、ロー マ帝政開始前後及び中世前期の現実の日付を考察する場合にはroma.rsc が必要 です。  また、中世においては、春分や復活祭[9,10]を年初としていたことがあるよう で、年の扱いには注意が必要です。文献[3]により、表にまとめると、 03/25 ピサ(〜18世紀) 12/25 イギリス(〜14世紀) 03/01 ヴェネツィア(〜18世紀) 03/25 イングランド(14世紀〜1752年)、スコットランド?(14世紀?〜1599年) 03/26 フィレンツェ(〜18世紀) となります。何れも、以後の時代は 01/01 が年初となります。また上記と矛盾 する点もありますが、文献[11]に、より詳細な情報がありましたので、その要点 をメモして以下に示します。 -------------------------------------------------------------------------- The indiction AD312 を XV とする 15年周期、番号は prima, secunda, tertia … のようにラテン語で 15 まで数える。一般に使われたのは13世紀の終わり までで、その後は唯一公証人の作成する文書にのみ16世紀まで残る。 <1年の初め> (a) 09/01 The Greek, Constantinopolitan, Indiction 1087 まで教皇庁尚書局(Papal Chancery〜訳語については NIFTY-Serve 点子さん(PDE01661)に感謝)で採用。 Alexander III(AD1159-81)の時代にいたるまで変転。 (b) 09/24 The Bedan, Caesarean, Imperial Indiction, the Indiction of Constantine Bede が England に持ち込む。Alexander III時代に教皇庁尚書局も採用。 (c) 12/25 or 01/01 The Roman, Pontifical, Indiction 教皇庁尚書局内外で散見される。 西暦の年初 01/01 ローマ市民暦の年初で一般に7世紀まで使用された。the Spanish Era(*)が 使用された地域ではもっと遅い時期まで生き残った。中世を通じて時折使わ れることもあったが、ヨーロッパ大陸で再び一般的に使用されるようになっ たのは、16世紀からである。 (*)The Spanish era era millesima octava スペイン・ポルトガル・ゴール南部(西ゴート王国の支配領域) 38BC/01/01(イースター表の元期)から数える (すなわち、38引くと西暦になる) カタロニア AD1180 まで アラゴン AD1350 まで ヴァレンシア AD1358 まで カスティーリャ AD1382 まで ポルトガル AD1420 まで 12/25(Christmas Day) イギリス(the Empire〜当時はフランスに領地があったので England と表 記しなかったのか?)では、13世紀の第2四半期まで。 教皇庁尚書局では、 AD962-1098の間。 スペインをのぞく西ヨーロッパのほとんどの地域では、12世紀まで。 ベネディクト会ではより遅くまで使用していたので、注意する必要がある。 03/25(Christmasの前の) Annunciation 受胎告知日 9世紀末のアルルに始まり、ブルグンディと北イタリアに広がった。教皇庁 尚書局ではAD1088-1145の間使用された(local use だそうで 12/25 や 次 項の 03/25 の期間と重複している)。ピサではAD1750まで残ったので、 calculus pisanus とも呼ばれる。 03/25(Christmasの後の) Annunciation 受胎告知日 修道院で使用されていたものがフィレンツェに伝わり、フランスに広まっ た。このため calculus florentinus とも呼ばれる。教皇庁尚書局では AD1098から用いられ、イギリスでも12世紀末から使用されるようになった (散発的な例が11世紀半ばにある)。文献[3]でフィレンツェの年初を 03 /26 としているのは勘違いか? 復活祭 Philip Augustus(フィリップ2世-尊厳王-在位AD1180〜1223)がフランス に導入。オランダやケルンなど一部の地域に広がった(前日や前々日が年 初の場合もある)。Philip Augustus の時代しか使用されなかったような 書きぶりです。 09/01,09/24 9世紀後半のアングロサクソン年代記に見られる。Indiction に連動させ るという Bede(AD673〜735頃)の提案した年初。 09/29(Michaelmas Day ミカエル祭) 14世紀の歴史家 Adam de Murimuth が使用した。 -------------------------------------------------------------------------- 改暦の時期や年初は、汎用太陽暦をカスタマイズして変更できます(復活祭 年初を除く)。詳細は5章のカスタマイズの項をご覧ください(例としてイギ リスや9月年初とクリスマス年初が混在する中世シチリアの暦事情を再現する west.rscを添付しました)。また、シリアで使われていた[12]暦は、312BC10月 1日を紀元(セレウコス紀元)としていますが、年初が異なることを除けば完全 にユリウス暦に同期しています。この暦は +s$s で再現できます。アルメニア には、後にイラン暦の所で言及する1年365日の暦の他にも、ユリウス暦に同期 した、 The Lesser Armenian Era(AD1084.8.11元期)、The Little Era of Azaria (AD1616.4.2元期)などがあるそうです[13]が詳細不明です。 << グレゴリオ暦 >>  AD1582年10月15日(カトリック教国の場合)から使用されている400年に97回 閏年を置く太陽暦です(現在使用している西暦)。ユリウス暦1582年10月4日の 翌日がグレゴリオ暦1582年10月15日です。  ただし、グレゴリオ暦への切り替え時期も国によってまちまちですので、確 認してから使用してください。文献[9,14-20]などにより年表風にまとめると、 # 文献[16]によれば、文献[9]はグレゴリオ暦に興味を持つ人はぜひ読むべ # き本であるとのこと。また同じく文献[16]が指摘するように Encyclopedia # Britannica の calendar, chronology の項も半端ではない詳しさです # (chronology の項は割愛されている版もあるようです)。さらに文献[9]中 # の O.Gingerich の論文は、グレゴリオ暦への改暦(市民生活への受容)に # 関する基本文献として文献[17]を用いたとのこと 1582/10/15 イタリア、スペイン、ポルトガル、ポーランド[9] 1582/12/20 フランス[15,18](フランス共和暦による中断については後述) 1583/01/01 ベルギー、オランダの旧教地域[9]([15]ではオランダは1582/12/25 −新教地域[14]は、1700/07/01,1700/12/01,1701/01/12) 1583/02/24 アウグスブルク[9,17] 1583/10/?? オーストリアの一部(チロルは10/16[17])、バヴァリア[9] 1583/11/15 ヴュルツブルク[17] 1583/11/22 マインツ[17] 1583/11/27 ミュンスター[17] 1583/12/?? オーストリアの残り[9] 1584/01/18 ボヘミア[9] 1584/01/22 スイス[9]( 〜1812年までかかる、 バーゼル・ベルン・チューリッヒなどは1701/01/12) 1584/10/15 モラヴィア[9] 1587/11/01 ハンガリー[18] 1700/03/01 ドイツの新教地域、デンマーク[9](〜1776年までかかる、 復活際の計算は1775年まで独自[14] − 14.bat #14 参照) 1752/09/14 イギリス及びその植民地[9](公的制度上は 1752/10/01 からか) 1753/03/01 スウェーデン[9](1700/03/01〜1712/02/30まではユリウス暦に1日進む) ^^ 1873/01/01 日本(キリスト教の宣教師は1585頃から[19]) 1912/01/01 中国[9] 1917/??/?? トルコ[14] 1918/02/14 ソビエト・ロシア[18,20]〜NIFTY-Serve JBC01341 花關索さんのご指摘 (文献[9]を紹介してくださったのも花關索さんです) 1919/12/14 ポーランド(再び登場するのは独立回復のため)[18] 1920/03/01 セルビア・スロヴェニア・クロアチア[18] 1920/04/01 ギリシア・ルーマニア(公式採用)[18] 1920/10/01 ブルガリア(公式採用[18]、実際は1916頃から使用?[14]) 1924/03/?? ギリシア正教会がグレゴリオ暦とほぼ一致する暦を採用[9] (ただし900年に2回閏を省く、AD2800年にずれが生ずる) となります。日付は改暦時のグレゴリオ暦での日付です。?? は 01 であるもの が多いと思われるものの未確認です。unix のcal コマンドで 1752年 9月をみて みると、イギリスでの暦法の切り替えの様子がわかります(west.rsc も参照)。 東欧などは公式採用と実質的な使用開始がずれるためか資料にばらつきがありま す。単に改暦の日付を変えるだけなら、次のような切取線の間の指定を切り抜い て、例えば russia.rsc とでもするのが分かりやすいでしょう。 --------------------- 切取線 ---------------------- command: Jv: G 1918 2 13 ; # ユリウス暦の終わり command: gv: G 1918 2 14 ; # グレゴリオ暦の始め --------------------- 切取線 ---------------------- 'G'および年・月・日の間は全角のスペースを用いるよう注意してください。 季節との関連は全く無くなってしまうものの、紀元後約500万年まで暦法の定 義に従った計算が可能です。本プログラムの「グレゴリオ暦」は施行状態と関 係なく、無限の未来まで日付を割り当てるための便法であると割り切っていた だいた方がよいでしょう。 << 汎用太陽暦 >>  カスタマイズすることによって様々な太陽暦に対応できる汎用太陽暦です。 表示及び入力の暦法指定 F〜J は 汎用太陽暦の 0番 〜 4番に割り当てられて おり、フランス共和暦、グレゴリオ暦、イスラム暦、ユリウス暦は汎用太陽暦 のアルゴリズムによって計算されます(イスラム暦は太陰暦ですが、全く同じ アルゴリズムで計算可能のため、便宜上以下の説明では汎用太陽暦に属するも のとします。本説明書に限定した名称とお考えください)。汎用太陽暦の 5番 は、1日の長さが24時間でない暦法のための特殊用途のもので、通常は使用で きません(インド太陰太陽暦の項と g1.rsc をご覧ください)。カスタマイズ の方法については5章で説明します。 V2.07 以後では、本機能が拡張され太陰太陽暦も扱えるようになりました。 カスタマイズデータ gene0〜gene4 の「閏年と平年の日数差」の項目が0以下 の時に特殊な動作を行います。 0: 太平天国暦日(不規則部分の補正あり) -1: 定気太陽暦(特定の日付の太陽黄経を固定する) -2: 太陰太陽暦(月の後半を16〜30日と表記)、置閏周期が 0 ならタイ暦 -3: 太陰太陽暦(月の後半を-1〜-15日と表記)、置閏周期が 0 ならタイ暦 -4: ユダヤ暦(Nisan月15日の曜日補正あり) -5: 同上(デフォルトのパラメータを使用) -6: チベットの時輪暦(体系派) -7: チベットの時輪暦(作用派) ただし、ここでいう太陰太陽暦は、年初の朔を太陽及び月の平均黄経で求め、 1年の日数が決まると、その年の閏の有無及び位置、月の大小のパターンが決ま るような暦法に限定されます。また、タイ暦は専用のアルゴリズムを用いていま す。定気太陽暦は、太陽の視黄経が特定値(整数)になる日を暦面上で固定する ような暦法を指しています(フランス共和暦がこれに属する)。これに対して、 既存の太陽暦を平気太陽暦と書くことにします。なお時間帯及び日の境界の変更 は、ここでいう太陰太陽暦およびタイ暦には影響を与えませんが、定気太陽暦は 太陽の視黄経を計算に用いているため影響を受けます。 以下の暦法は、カスタマイズの如何に関わらず参照されますので、カスタマイ ズの際には気をつけてください。 G:中国式太陰太陽暦、日本外国暦日および復活祭の計算でグレゴリオ暦と仮定される I:ジャワ暦の計算でイスラム暦と仮定される J:復活祭の計算でユリウス暦と仮定される <季節と週> when(lt).exe でデフォルトに設定されている「季節と週」は、グレゴリオ暦の 1月1日を含む週の日曜日に年初を固定する「暦法」です。パラメータ次第でこ んなこともできるという例として挙げました。週刊誌の発売日やテレビの番組編 成を思い浮かべれば意外に身近な「暦法」であると言えるでしょう。 <アケリス世界暦> world.rsc のアケリス世界暦は、エリザベス・アケリス女史が設立した世界暦 協会が採用を運動し、国際連合でも議題になった事のある暦法で、1か月の労働 日数を均等にし(当時は週休1日が主流だったんですね)、季節ごとの月日と曜 日の対応を固定している事に特徴があります。 <コプト暦> copt.rsc のコプト暦はエジプトのキリスト教コプト派が使用している太陽暦 です。ユリウス暦と同様完全に4年に1度閏年を置きます。ここではディオクレ チアヌス紀元(AD284年8月29日)[3]を元年トート月1日とし、文献[9]に従いトー ト月1日がユリウス暦において閏年の前年のみ8月30日に、その他の年は8月29日 になるようにしてみました(V2.071より変更)。これは文献[21]のAD1983年9月12 日及び文献[22]のAD1993年9月11日がトート月1日になることを説明しますが、文 献[21]でAD1982年1月7日がキヤハーク月28日になることと矛盾します。この閏年 配置は文献[12]でも確認できました。 文献[13]によれば、ローマ皇帝のアウグストゥスが、元々閏年がなく1年365 日であったエジプト暦の23BC-22BCにかけての年の年末に一日加えたのが、現在 に続く閏年の始まりであるとのこと。V2.08では、この閏年のないエジプト暦を +s$e で再現できるようにしました。 <イラン暦> iran.rsc はイランの暦法を扱います[12,21-26]。イランでは伝統的に春分を年 初としますが、暦法の詳細は時代とともに変化してきたようです。文献[12,21]に より整理してみると、 |No. 公用期間 暦法(紀元)名 元期(*は即位) 特徴 |(1) 632.06.16〜 Yazdegered    Yazdegered III* 余日を5日,120年に1度閏月? |(2) 1079.03.15〜 Jalali Hijra   余日を5〜6日 |(3) 19世紀中期〜 Turkic-Mongolian 700 after Hijra モンゴル風の太陰太陽暦 |(4) 1911.??.??〜 Borji** Hijra インド風の太陽暦 |(5) 1925.??.??〜 Solar Hijra   Hijra    年の前半が31日 |(6) 1976.03.14〜 Shahinshah Cyrus* 年の前半が31日 |(7) 1978.08.27〜 Solar Hijra  Hijra 年の前半が31日 |** Turkic-Mongolian 暦、Borji 暦は上記公用以前も民間で長年使われていたと |いう(現状何れも表を用いなければ再現困難)。これらの暦による史料も多いら |しく、when.exe のサポートする Yazdegered, Jalali, Solar Hijra 暦だけでは |カバーできる年代は限られる。 となります。 Yazdegered 暦は文献[12]では120年1か月毎に30日からなる閏月を置くとして いますが、同じ文献に AD1079.3.15は Yazdegered 暦 448年 Farvardin月 19日 と記されており、閏月が入らず、この置閏法は実行されなかったのではないかと 思われます。この地域には Yazdegered 暦のような閏年のない暦法がいくつか記 録されています。アルメニア[12,13]やエジプト[13]の暦法です。s.rsc にはこ れらの暦法を収録しておきました。 Jalali 暦は単純な33年8閏法です[12]。 Borji 暦は太陽の視黄経による「節月」(後述)と思われ(文献[12]の情報は Borji 暦に関しては不十分で断定的なことは言えない)、ネパール・南インドや バリの太陽暦(後述)と同様 29〜32日の月があります。 また、Solar Hijra 暦の年初は Borji 暦に連動しているそうですが、ここ150 年間を見る限り33年8閏法になっています(これも[12])。62年15閏法の資料も 見かけましたが(“Wuestenfeld-Mahler'sche Vergleichungs-Tabellen”という も書誌情報欠乏)、他のすべての資料と矛盾するため採用しないでおきます。 文献[12,22]では、イラン暦の元日は一昨年(1371年)も昨年(1372年)も3/21に なりますが、イラン時間では天文学的春分は昨年も今年も3/20の午後です。すな わち、中東の常識に従って1日が日没に始まる[23](V2.071からこのように変更) とした場合、暦の上の「春分」が実際よりも約1/4日遅れていることを意味しま す。これは閏年の配置が Omar Khayyam(AD1040-1123)時代(2)のままであるとす ると説明できます。イランには春分の瞬間を時報で報じ新年の到来を祝う習慣が あるそうです[24]。一体どの春分を祝っているのでしょうか?疑問が残ります。 アフガニスタンにおいても AD1911年から Borji 暦が実施されましたが、その 月の日数は次第に一定に揃えられるようになり、AD1968年3月(Solar Hijra 1347 年)からはイランと完全に同じ暦となっています[12]。 Yazdegered 暦以前については文献[25,26]で詳細な検討がなされています。 当初のイランの暦(Old Avestan,Old Persian)についてはほとんどわかっていま せん。文献[25]では太陽暦なのか太陰太陽暦なのかの判断も保留しているくらい です。しかし、ベヒスタン碑文に見られるバビロニアの月名との対応からすると 太陰太陽暦と推定されます[26]。年初は夏至(Maidhyoizaremaya)の頃にあたるの で、きわめてギリシア暦と似た暦であったことになります。ひょっとすると原印 欧語族の暦の直系なのかもしれません(ちなみにインドの古い暦法では年初は冬 至[27])。 この暦(Old Avestan〜現在の研究者がそう呼んでいるだけで、当時そのように 呼ばれていたわけではない)はアケメネス朝の初期(前6世紀末頃)にバビロニア の太陰太陽暦および Young Avestan と通称される太陽暦に置き換えられました。 Young Avestan はエジプトの太陽暦をほとんどそのまま導入した暦法で、何度か の修正を経て千年以上使われたとされます。最初の修正は前5世紀後半か前4世紀 初、2度目の修正は後4世紀末か後5世紀の初め、そして最後の修正は AD1006 年 とのことです(最後についてはal-Biruni(AD973〜1050以後)[28]自身が関わった のかもしれない)。宗教暦と市民暦からなり、宗教暦は116年(これは恒星年を 近似)とも120年(これは回帰年を近似)とも言われる間隔で30日からなる閏月 を挿入しました。市民暦は紀年が異なるものの仕組み自体は(少なくとも2度目 の修正以後)Yazdegered暦に一致するものと考えられます。  このようにイランは、さながら暦のデパートの観がありますが、文献[25,26] を暦日再現に十分な根拠のある資料と見なせるか不明で詳細は省きます(なにし ろ「歴史のない」パルティアの時代[29]を含んでいるのですから)。s.rsc に文 献[26]を採用した場合の例を用意しておきましたが、どこまで真相に接近してい るものやら…(s.rsc のペルシャ暦の元年である 503BC は計算の上でのもので、 これがそのまま紀年として使われたことはなかったものと思います)。 <インド太陽暦> indo.rsc のインド Civil Calendar は1957年に制定された National Calendar の太陽暦部分で、第一月である Caitra 月の1日をグレゴリオ暦の3月22日(平 年の場合)及び3月21日(閏年の場合)に固定する暦法です[16,21]。ただし、 『占星術師たちのインド』[27]によれば、この暦はあまり使われていないそうで す。インド太陽暦-太陰太陽暦複合システムの太陽暦部分については別項をご覧 ください。 <ジャワ暦> java.rsc のジャワ暦はイスラム暦の1043年元日を1555年(シャカ紀元-Saka-) の元日とする(それまで太陰太陽暦であったものがこの時代にイスラムの影響を 受けて純太陰暦化した[21])純太陰暦で8年(ウィンドゥ)周期の第2,4,8年を閏 年にし(最初の120年間は第4年でなく第5年が閏年)、120年に一度閏年を平年に 戻します。従って平均の一年の長さはイスラム暦と完全に一致しますが、毎月の 第1日はイスラム暦と1日ずれる事があります。純太陰暦化する前のヒンドゥー ・ジャワ暦と区別する時は、このジャワ暦をジャワ・イスラム暦と言います。 (注)このような8年3閏の純太陰暦はトルコにもありました[12]。こちらは、ヘジ ラ紀元を8で割って、2,5,7になる年を閏年とします。 ジャワ暦の特色は、5曜(パサラン)、6曜(パリンクラン)、30週(ウク=210 日)の周期を持つ事です。本プログラムでは、日数計算の表示をカスタマイズし てこれらを示すようにしています。文献[30]によれば閏年を平年に戻したのはジャ ワ暦1674年(純太陰暦化して他の地域のシャカ暦とは年数がずれます),1748年 および1866年です(1748年は本来ウィンドゥの終わりである1746年であるべきで すがなぜか2年遅れています)。ウインドゥの日数は35の倍数なので、この補正 で挟まれる期間、ウィンドゥは必ず同じ5曜・7曜で始まります。1674年以前は、 Legi 金曜、1675年から1748年の間は、Kliwon 木曜、1749年から1866年の間は Wage 水曜、1867年以後は Pon 火曜です。文献[31](BUKU PINTAR は日本語でい えば知恵蔵くらいの意味か)の祝日一覧に使用された暦(これの元ネタは文献[33] らしい)は他で見かける暦に対して1日遅れています。この暦は1748年の処置を 行わなかったヴァリエーションなのではないかと思われます。 ウィンドゥの第5年(Dal年)は1679年以後、平年になりましたが(文献[31]の 祝日一覧のように以後も閏年とするヴァリエーション-Ortodoks-もあるらしい)、 各月に対する日数配当が他の平年とは異なるようです。詳細は本項の図および java.rsc をご覧ください。 プラノト・モンソ(pranata mangsa)はAD1855年スラカルタ(ソロ)の Paku Buwono 7世が最終的に現在の形にした夏至から第1月が始まる太陽暦で、正午の 影の長さによって1年を12分しているため、40日代の月が4か月、20日代の月が 8か月あります。java.rscの F 暦法は文献[30]の情報に合致するようにしていま す。 私信でいただいた五十嵐忠孝氏による文献[32](オランダ語)の要約などを さらに図にまとめると以下のようになります(シャカ紀元で表記)。 1547 ジャワ暦の純太陰暦化 | 金曜開始・Dal年閏年 1555 スルタン・アグンが公式に採用 | 金曜開始・Dal年閏年 1675 +----------------------+ | ヨグヤカルタ侯国 | スラカルタ侯国 | 木曜開始・Dal年閏年 | 木曜開始・Dal年平年 | 1749 1793 | 水曜開始・Dal年月日別配当 +--------------------->| Gerebeg Mulud の行われる | スンダ | Dal年 Mulud月 12日を | +-----+ 月曜(Senin)Ponに保つ(文献[33]) : | 1867 : | +----------------------+ : | | 火曜開始・Dal年平年 : 火曜開始・Dal年月日別配当 : | | : ort(h)odoks? | | ? <バリ暦> また、文献[34]に紹介されているバリ島のウクに対する暦注を表示するには、 +java$b でカスタマイズします(V2.08で B -> b と変更)。パサラン、パリン クラン、ウクなどは一部ジャワと綴りが異なりますが内容的には同じもので、そ の他多様な暦注が使われているそうです(このあたり迷信の世界に深入りするこ とになるのであまりふれません−興味のある方は文献[34]を参照してください)。  バリ島にもシャカ紀元の暦がありますが、ジャワ島と異なりイスラムの影響を 大きくは被らなかったため、純太陰暦化することなく現在でも太陰太陽暦のシス テムを保持しているそうです(以下の情報は特に断らないかぎり資料[35,36]に よる)。bali.rsc で直接カスタマイズするとこのシャカ暦の表示ができます (日本時間午前0時の値の整数部が日付となる〜単に欠日の再現に留意しただけ なので小数部の細かい値には意味がありませんが、小数部が.99…ならその日が 欠日になります。すなわち、n.99…はバリの暦の n/n+1 という表記に対応しま す。小数部を変更する場合は bali.rsc のoffset の B を変えてください)。 月の名称はプラノト・モンソとよく似ており(正書法が決まっていないから なのか)暦の発行者によって綴が異なりますが、例えば、 1:Kasa 2:Karo 3:Katiga 4:Kapat 5:Kalima 6:Kanem 7:Kapitu 8:Kawulu 9:Kasanga 10:Kadasa 11:Desta 12:Sada となります(1〜10月は単に第一〜第十という意味)。Kadasa 月が新年で、イ ンドで言う Vaisakha 月に相当します(lombok.rsc に caitra 月始まりの場合 のデータを示します。ロンボク島の暦と言われますが現在も使われているかどう かは不明です)。現在発行されているシャカ暦は19年7閏法で、AD1992年暦(これ だけは資料[35]ではなく暦研究家の西沢利男氏の入手された暦によりました)で は、閏月は1981年6月4日〜(Mala sada)、1984年5月2日〜(Mala desta)、1986年6 月8日〜(Mala sada)、1989年5月7日〜(Mala desta)、1992年(Mala sada)、1994 年6月10日〜(Mala sada)、1997年5月8日〜(Mala desta)とされ、シャカ暦を19で 割った余りが0,6,11ならDesta を、余りが 3,8,14,16なら Sada を繰り返します。 このパターンは少なくともAD1965年以来保持されてきましたが、AD1993年暦から 変更になり、余りが13なら Kadasa、2,10なら Desta、18なら Sada、7なら Kasa、 15なら Karo、4ならKatiga を繰り返すようになりました。 1992年暦(天文学的春分は3月20日)では、AD1992年3月5日がシャカ暦 1914年 Kadasa 月白分1日(=暦の上での新月の翌日)、4月4日がDesta 月白分1日、5 月3日がSada月白分1日、6月2日が Mala sada 月白分1日になります。Desta 月 は欠日(白分12/13日=AD1992年4月15日水曜日)があるため 29日間です。欠日は 必ず9週間毎の水曜日にあります(このルールはAD1971年1月27日(水)以後のもの、 AD1970年12月18日(金)以前は9週間毎の金曜日)。インド暦のような余日はありま せん。 バリ島のシャカ暦を正しく計算するには、以下のように指定してください。 〜1965年 : データが十分でなくサポートせず 1965年〜1971年 : +bali$a 1971年〜1992年 : +bali$b(デフォルトなので +bali だけでもよい) 1993年〜 : +bali$c <太平天国暦>  tenreki.rsc の太平天国暦は、太平天国で用いられた1年を366日とする太陽 暦です。奇数月を31日、偶数月を30日とします(ただし何故か第2年11月だけは 30日[37]、また文献[13,38]によれば太平天国9年に改暦があり、40年毎にすべて 28日の月からなる年を設けて1年を平均365.25日にしたそうですが、太平天国は その年を迎えるまえに滅んでしまった)。太平天国では七曜及び干支が他よりも 1日進んでいたそうです[38,39]。従ってかれらにとっては我々の土曜日が安息 日にあたるわけです。干支に特殊な文字を使用している事もあり、太平天国にお ける七曜及び日の干支を表示するようにしています。 文献[37]では、第2年11月31日がなく第3年3月1日以降干支が1日進むので、本 データでもそのようにし、七曜も干支と同様第3年3月1日に進んだものと推定し ています。文献[38]では文献[37]の第3年3月1日以後の暦法が最初から適用され ていますが、文献[37]およびその典拠資料は文献[38]を踏まえたものである可能 性が高く、文献[37]の方をデフォルトとして採用しておきます。+tenreki$ でカ スタマイズすると文献[38]の暦日表も再現できます。 (注)中国で発行されている各種の暦日対照表を調べてみたところ、 1) 太平天国2年から記載し、はじめから干支が1日ずれているもの 2) 太平天国元年から記載し、干支の1日のずれを考慮しないもの にまっぷたつに分かれました。文献[37]のように途中から変わったとするものは 他にありません。 <彝族太陽暦> i.rsc の彝族太陽暦は中国領内に住む「彝族」の1年を10か月とする太陽暦で す[40]。1年は36日からなる月10か月と5〜6日の余日で構成されます。彝族はイ ンド系の太陰太陽暦も使っているそうですが(というかそもそも彝族太陽暦が机 上の暦法でなく実際に使われているのかどうかすらよくわかっていない^^;)、 そちらの方はサポートしていません。 <時輪暦> jirin.rsc の時輪暦はチベットで行われている暦法で、インド系の太陰太陽暦 の一種です[41-43]。閏月の挿入は平均黄経で行い、重日(これは文献[41]の用 語−余日と同義)の挿入及び欠日の削除は視黄経によります。重日を区別するた め、前の方の日付には'-'を付けるようにしました(白分、黒分の別とは意味が異 なります)。閏月の挿入を平均黄経で行う点、黒分がない点などは中国的といえ ます(china.doc 及び後述のインド太陰太陽暦の項もご覧ください)。 パラメータは作り込んであるため、「体系派」と「作用派」の切り分けしかで きませんが、紀元の設定、閏月の配置は、ゲタのはかせ方でカスタマイズできま す。時輪暦ではAD1027年丁卯(文献[12]にふれられている Turkic-Mongolian calendarの元となったモンゴルの暦もこの年が紀元という)を第1周期(第1ラ プチュン)のはじめとする干支周期番号と干支で年を示しますが、本データのデ フォルトではそのまま西暦を用いています(ちなみに第17ラプチュンのはじめは AD1987年です)。文献[41]の時輪暦の計算上の元期はちょうど800年後のAD1827 年です。カスタマイズ時は、このAD1827年を何年と表示するかを指定するように なっています。 閏月は、文献[42]の表と一致するようにしてみました。また、重日・欠日は、 文献[27,42,44]の情報すべてが「体系派」の方に一致するので「体系派」をデフォ ルトにしました。中国四川省で発行されたAD1989年の暦とインドで発行されたダ ライ・ラマ監修と思われるAD1994年の暦を入手しましたが、何れも「体系派」の パターンに一致しています。 文献[41]では、箕宿月の次を牛宿月としています。二十七宿には牛宿はなく、 インド暦では箕宿月(Asadha)の次は女宿月(Sravana)になるのが普通ですが、 ここでは文献[41]に従い、牛宿月(Abhijit)としておきます。 (注)文献[41]の用語の文献[27,42]による解釈 体系派 トゥプツィー 元期は異なるが文献[43]の『ケーパ・ガチェー』(*)ともよくパラ メータが一致 作用派 チェーツィー 五要素 パンチャーンガ 定日  太陽の視黄経 半定曜 ティティの終了ヴァーラ(=曜日)時刻 定曜 ティティの終了ヴァーラ(=曜日)時刻に日の出時刻の補正をしたもの 作用 カラナ | 月宿 ナクシャトラ |-- サポートせず 会合 ヨーガ | (*)“学者たちを喜ばせる”というほどの意味 プトゥン Bu ston (AD1290-1364) の AD1326年の著作 (何でチベット語はこんなに綴と発音がかけ離れてるんでしょうね) <タイ暦> (ベトナムを除く)東南アジア大陸部の暦はインドの流れを汲んだ暦です。 太陽暦部分は恒星年によっており、年初は太陽が白羊宮に入る日(中国でいう 平気で計算−タイでは大ソンクラーンと呼ぶ)です。 太陰太陽暦部分は、月の大小があらかじめ決まっており、Caitra月(に相当す る月−名前と月番号は暦によって異なりますが、本プログラムの太陰太陽暦ルー チンの制限により Caitra月の月番号は 1 に固定されてしまっています。必要に 応じて読み替えてください)を小として大小を交互に配します。 閏年は Asadha月(大の月)をダブらせます。行事は後ろの Asadha月に行うこ とが多い−五十嵐氏私信−ことからするとインドと同様に本来の月は後ろの方の Asadha月かも知れません。また、朔の日付調整のため通常は小の Jyaistha月を 大の月に変更する場合があります。従って1年の暦のパターンは、平年か閏年か、 Jyaistha月が大か小かで4通りのパターンが可能ですが、タイ[45]とラオス[46] では閏年が Jyaistha月小になるよう調整され、逆にビルマとその西部のアラカ ン[48]では平年が Jyaistha(Nayong)月小になるよう調整されるので、何れも3 通りしか許されません。 大の月は白分15日黒分15日、小の月は白分15日黒分14日からなります。つまり、 インド太陰太陽暦でいう欠日は必ず黒分15日であり、余日はありません。  閏月は大ソンクラーンが Caitra月白分6日から Vaisakha月白分5日の間になる ように置きます(アルゴリズムの関係上まれに Vaisakha月白分6日になることが あります)。 +thai で標準的な中部タイの暦(以下では単にタイ暦[45]−Caitra(チットラ) 月は5月〜ラオスの暦[46]もほぼ同じ)を再現できます(V2.08で選択文字指定方 法(5章のカスタマイズの項参照)が変更になりましたので注意してください)。 また大ソンクラーンは月日にともに 0 を指定すると得られます。従って、大ソン クラーンの一覧表は、例えば、 when +thai /(H!gjd) u:0 h 0 0 0 *y のようにして作成できます(以下いちいち(ret)を書きません)。 以下に、文献[45,46]の記述をチェックして分かった、タイ暦の計算方法を説 明します。 -------------------------------------------------------------------------- (1) パラメータの計算 まず、暦元から、計算する年の年初までについて、 + 太陽日数 (horakhun) Hi 余り Hr ← (タイ小暦年×292207+1173)÷800 太陰日の進み(avaman) Ai 余り Ar ← (Hi × 11+ 650)÷692 太陰月数 (masaken) Mi 余り Mr ← (Hi + Ai) ÷ 30 を求めます。 + これで恒星年は 365.25875日になり、スールヤシッダーンタを小数点以下5  桁近似しています。文献[48]によるとスールヤシッダーンタ自身この近似値 も用いているとのこと。 (2) 翌年の年初までの太陽日数 太陽暦の閏年、平年に相当します(292207=365×800+207)。 366日 ← Hr が 593 以上 (593+207=800) 365日 ← Hr が 593 未満 (3) Jyaistha月の大小 暫定的に、翌年の年初までの 太陰日の進みが5日なら Jyaistha月大 太陰日の進みが6日なら Jyaistha月小 とします。つまり、当年と翌年の太陽暦年初の午前0時の月齢の端数を比 較し、増えれば Jyaistha月大、減れば Jyaistha月小です。 (6×692=366×11+126=365×11+137) 5日 ← 太陽日数 366日で Ar が 126未満、365日で Ar が 137未満 6日 ← 太陽日数 366日で Ar が 126以上、365日で Ar が 137以上 (文献[45,46]は等号成立時の判定がおかしいので訂正しました) 暫定的と書いたのは、Jyaistha月の大小は後の(5)で補正される場合があ るからです。 (4) 閏年 年初が Caitra月白分6日から Vaisakha月白分5日の間になるように閏年を 置きます。年初月齢(tithi) Mr を用い、 閏年 ← Mr が 5 以下 または 25 以上 平年 ← Mr が 6 から 24 のあいだ と判定します。ただし 連続する年の Mr が 25, 5 の時、どちらか一方を平年に、 連続する年の Mr が 24, 6 の時、どちらか一方を閏年に(*)、 変更します。詳細は時代と場所によって異なるそうです(本プログラムで は何れも前の年を変更)。 (5) Jyaistha月の大小の補正 (3)(4)により閏年のJyaistha月が大となることがあります。文献[45,46] にはアルゴリズムを明記していませんが、暦日表[45]を見る限り、 翌年のJyaistha月を小から大に補正 ← Mr が 0 または 24 以上 前年のJyaistha月を小から大に補正 ← Mr が 1 から 6 のあいだ として、閏年のJyaistha月を小に戻しています。 (6) 太陰太陽暦日 タイ小暦 0年の太陽暦年初がユリウス暦 638年 3 月22日で、Vaisakha月 白分2日になることと、(1)〜(5)で暦日は確定するのですが、以下のよう にして年初の直前の Caitra月 0日を簡便に計算可能です。 年初月齢がそのまま太陰太陽暦の日付になるものと仮に考える(ただし、 0 日はVaisaka月白分1日とする)と、Caitra月 0日は太陽暦年初(ユリウ ス通日 = 1954167+Hi )の 30 日前 ← Mr が 0 (年初は Vaisakha月白分1日) 29+Mr日前 ← Mr が 1 から 5のあいだ(年初は Vaisakha月) Mr 日前 ← Mr が 6(*)以上 (年初は Caitra月) (*)Vaisaka月の場合は 29+Mr日前 ただし、本来太陽日数を使うべきところを太陰日数で代用したため誤差が 出て、直前の Caitra月 0日と直後の Caitra月 0日の間隔が、(3)〜(5)で 決まった日数より1日短くなることがあります。このときは、Caitra月 0 日をもう1日前に変更します。この最後の変更の結果、年初が Vaisaka 月 白分6日になるケースがまれに発生します。 -------------------------------------------------------------------------- 計算を実際のデータとチェックしてみると、文献[49]とは一致しますが、文献 [13]にAD1970年がJyaistha月大とあるのが計算でJyaistha月小に、文献[21]にAD 1986年1月1日が黒分6日とあるのが計算で黒分5日になるなど、必ずしも一致しな いようです。 なおデータを添付していませんが、チェンマイを中心とする北部タイでは Caitra 月は7月です。 タイ暦の紀年には以下のものがあります[21]。 | 紀年名 元期(満が主だが数もある) 備  考 | 小暦(チュンラ・サッカラート) AD 638 AD13世紀末から使用(?)少なく | ともアユタヤ朝後期からは公用 | 大暦(マハー・サッカラート) AD 78 インドのシャカ暦と同じ | 仏暦(プッタ・サッカラート) BC 543 宗教暦、AD1913年から公用 | ラッタナコーシン暦(ラッタナコーシン・ソック) AD1782 AD1889年から公用 | チュラーマニー暦 AD 188 昔の法律集に登場する タイの新年は複雑です[21]。タイにも年に割り振られた干支があって、十二支 (ピー〜日本や中国と同じ)は太陰太陽暦年初(Caitra月白分1日)に変わり、十干 (ソック〜サンスクリット語に由来する序列を表す特別のタイ語でタイ小暦(満) の1の位に一致)は太陽暦年初である大ソンクラーンに変わります。  公用暦の新年は元は前者であったのですが、AD1889年にグレゴリオ暦の4月1日 に改められて、さらにAD1941年に同じく1月1日になりました。しかし大ソンクラー ンを新年として祝う風習は根強く一般に定着しているそうです。thai.rsc では 年初を細かく変えていませんが、タイ暦は汎用太陽暦ルーチンで実現されている ので変えたい場合は west.rsc が参考になるでしょう。 <イ泰暦> whenhv.exe で +thai$ により計算するイ泰暦は中国領内に住む「イ泰族」の太 陰太陽暦で[40,50]、Caitra月を六月とします。標準的なタイ暦ではAD1985年に 閏月がある[21,45]のに、イ泰暦ではAD1986年に閏月がある[40,50]など具体的な 暦日には微妙な差があります。 文献[40,50]の最近の部分の閏年の配置をチェックすると、前述した標準的な 置閏法ではなく19年7閏法(1月29.5305832日)を採用している模様です(例え ばAD2024年の大ソンクラーンは Vaisakha月白分8日になり、前記の原則からは有 り得ないことです)。逆に文献[40]の古い部分は、標準的な置閏法により近いも のです。これは単純に計算をしただけなのかもしれません(文献[40]には日月食 の場合の補正について言及があるが詳細不明)。 文献[40]と比較したところ、本データの有効範囲はAD1936年6月20日からAD2023 年6月17日までです。ただし、実際はAD1962年7月2日が八月大の晦であるのに計算 ではAD1963年6月21日が八月大の晦になるため、この間は1日のずれを生じます。 文献[50]では何れも八月大ではなく八月大の年がまるまる1回分不足します。誤 記とも考えられますが何らかの不連続があるのかもしれません。 また太陽暦年初は、インド暦(サウラ学派のスールヤシッダーンタ)によく一 致し、set TZ=-5.5 でインド時間にした上で、 whenhv +surya 日付 s として求めることができるようです。つまりイ泰暦の恒星年は単に長さが一致す るだけでなく、暦元(カリユガ暦元ユリウス暦3102BC2月18日夜半)もインド暦と 一致していると考えられます。最初の年(タイ小暦の 0年である AD638年)を除い てきわどい年も文献[40]と一致します(例えば、AD1981年は 4月16日の 0:00:37、 AD1467年は 3月29日の 23:59:26で、ちゃんと日付まで合います。これに対し、タ イ暦では前者がずれます)。 <古代ギリシア風の暦> greek.rsc の古代ギリシア風の暦は文献[13]に従っています。この暦はアルゴ リズムとして見ると、イ泰暦と非常によく似ています。年初は夏至の直後(同じ日 であってもかまわない)の新月の初見で、そうなるように閏6月を置きます。古 くは閏12月をはじめ他の月に置かれることも多かったが次第に固定されたとのこ と。偶数月が大、奇数月が小ですが、日数調整のため5月を大の月とすることが あります。暦法のパラメータは、下記のようになるそうです。 | 日数 年数 月数 元期 | 8年3閏法 2923.5 8 99 不明 | メトン法 6940.0 19 235 432BC.06.27 = 12月13日 | カリポス法 27759.0 76 940 330BC.06.28+2 = 1月 1日(?) | ヒッパルコス法 111035.0 304 3760 実施されず 残念ながら、この暦は「幻の暦」のようです。文献[51,52]などを見ると小の 月であるはずの月が実際には大の月である例がたくさん出てきます。 アテネの暦は Conciliar Year と Festival Year からなりますが、 太陰太陽 暦である Festival Year が平年(12か月)か閏年(13か月)かに関わらず、 Conciliar Year は各年ごとにほぼ同じ長さの月(prytany)に分割される(つまり 平年と閏年では 1 prytanyの日数が異なる)ので、Conciliar Year が Festival Year に同期して年初が共通になった 346/5BC(346BCの夏に始まり345BCの夏に終 わる年をこう書くことにします。以下も同様です)以後の期間では、これらの Year の月日がともに記録されている碑文をチェックして、その碑文の年が閏年か 否かを推定することができます。文献[52]でのアテネの暦日再現の跡をたどると 以下のようになります。 | ・同じ著者のそれ以前の仕事から引用、導出の根拠は詳細不明 | 432/1BC 〜 410/9BC Festival Year は太陰太陽暦 | Conciliar Year は太陽暦(10分割)、両者は非同期 | 409/8BC 〜 404/3BC Conciliar Year が Festival Year に同期(10分割) | 403/2BC 〜 347/6BC ? | ・201/0BC までは主に碑文などの分析による | 346/5BC 〜 308/7BC Conciliar Year が Festival Year に同期(10分割) | 307/6BC 〜 224/3BC Conciliar Year が Festival Year に同期(12分割) | 223/2BC 〜 201/0BC Conciliar Year が Festival Year に同期(13分割) | ・閏年の判定は主にコインの刻印による | 200/9BC 〜 81/0BC Conciliar Year が Festival Year に同期(11分割) そして、346/5BC 〜 81/0BC の期間の Festival Year の平閏、archon を務め た人物の名前などが一覧表になっています(穴が多すぎて暦日の再現というレベ ルのものとは言えない)。この一覧表では 171/0BC と 170/69BC が連続して閏 年になっていることが注目されます。この不規則を補正するため、その後少なく とも 4年間は閏年が置かれませんでした。 月の大小は Festival Year の月日と Conciliar Year の 月(pritany)日の比 較により確定するケースもありますが、多くは現代天文学で推定した月の初見の 計算値に依っているようで精度には問題が多そうです。また、μετ’εικα δαS(Sはσの異体字のつもり)がついた日付を満月から順方向に数えてい ますが、月末から逆方向に数えるべきであるとの証拠が出てきて、Meritt 自身 も文献[52]出版後の1964年に意見を撤回したとのことです(文献[51]pp.9)。 古代ギリシアの時代に七曜が普及していたら暦日の確定も、より簡単だったで しょうが現実はそうもいきません。精度の高い再現は無理なのでしょうか。 <ホビット庄暦> shire.rsc のホビット庄暦は J. R. R. Tolkien の『指輪物語』[53]に出てく る暦です。ここでは NIFTY-Serve の FSCI に常駐しておられる高橋 誠さん (GGB01067)の研究に従って、ライト中日ができるだけ夏至(日本時間)に一致す るようにしてみました。アルゴリズム上、月番号をユール祭及びライト祭を含め て管理するようになっていますので、日付をコマンドラインから指定する場合は ご面倒でも月の名称を使用するようにしてください。 << フランス共和暦 >>  フランス革命時に十数年間使用され[6]、パリコミューンでもAD1871年3月18日 〜5月28日の間用いられた[18]太陽暦です。使用されていた期間以外での表示は、 年初がパリでの秋分の日になるように閏年を設定しています[54,55](whenhv.rsc に太陽の視黄経による高精度の計算を行うための設定を例示します−ただし、こ の場合、パリでの計算を行うため観測地の経度を POS=2.45,…とし、TZ=LOCAL に設定してください−それにしても「普遍」をめざした「革命暦」としては、変 な置閏法ですね)。フランス共和暦の施行は第2年からですが、本プログラムで は第1年から表示するようになっています。 << イスラム暦 >>  イスラム教圏で使用されているマホメットのメディナ聖遷を起点(暦法上の 起点はユリウス暦622年7月16日前日日没、聖遷(ヘジラ)はイスラム暦3月2日、 文献[12,16,23])とする1月平均29+191/360日の太陰暦です。1年12か月で、奇 数月が大、偶数月が小の月となります。ただし、閏年の場合は12月が大になり ます(ヘジラ紀元を30で割って、2,5,7,10,13,16,18,21,24,26,29余る年が閏年。 ただし、元期をユリウス暦622年7月15日前日日没にとる流儀もあり、この流儀 では第16年の代わりに第15年を閏年にする[12])。 年初の日付の確認は、前述の三省堂のコンサイス世界年表[6]に拠りました。 イスラム暦の1日は我々の定義で言う前日の夕方から始まりますので、デフォ ルトでは「前日」の18時に日付が変わるようになっています。また、第1日を 朔日に取るか(中国流)、最初の三日月が見えた日に取るか(イスラム流)に より、日本暦日とは最大2日のずれがあるように見える場合があります。  イスラム圏で使用されている太陰暦は実測によって月の第1日を決定して(あ るいは実測したらどうなるかを計算で求めて)いる場合があり(特にRamadan- 断食月-の前後のように宗教行事が絡む場合)、本プログラムの暦とは異なる事 があります。Ramadan の前後の朔をずらすと、28日や31日の月の発生を避けるた め、前後数か月にわたる変更が必要となります(たとえばアフガニスタンの場 合)。さらに上記大小のルールを使わず Ramadan 以外についても最初に三日月 が見える日を必ず第1日にするところもあります(たとえばイランの場合)。文 献[12]にはどの様に過去ずれがあったと考えられるか示されていますが、本プロ グラムには反映していません。 << ユダヤ暦 >>  ユダヤ教の宗教暦で、ユリウス暦3761BC10月 7日 5時11分20秒を元期(朔− ユダヤ時での値、ユダヤ時の 0 時は我々の前日 18時に相当−このためイスラ ム暦と同様、デフォルトでは「前日」の18時に日付が変わるようになっていま す)、1月29+261307/492480日、1年365+121555/492480日とする19年7閏法の 平朔の太陰太陽暦です(用語の意味については china.doc を参照してくださ い)[16]。年初は過越節(Nisan 月 15日)が月・水・金曜にならないように 調整されています(また、宣明暦の進朔と同様にユダヤ時18時(我々の正午) 以降に朔となる場合は、翌日を1日とする)。 暦法の詳細は文献[16]及び『暦学史大全』[23]によりました(この本は大変 な労作ですが、誤記誤植が多く資料も整理されていないので取扱いには注意が 必要です)。現状、実例との比較が『暦のすべて』[14]及び月刊『よむ』1993. 01「特集・暦をよむ」[22]の2例しかないため、アルゴリズムのチェックは十 分ではありません。お気づきの点がありましたらご教示ください。 << マヤ長期計算法 >>  マヤ文明で使用されていたグレゴリオ暦の3114BC8月11日を起点(第0日)と する暦で[56-61]、       キン   (kin)  =  1 日       ウィナル (uinal) = 20 キン       トゥン  (tun)  = 18 ウィナル       カトゥン (katun) = 20 トゥン       バクトゥン(baktun) = 20 カトゥン のように数えます(以後20進法で pictun, calabtun, kinchiltun, alautun と 位が進む[13]そうですが、碑文にはあまり出てこないのでしょう)。 起点の日付(一般にグッドマン・マルティネス・トムプソン(=GMT)説と呼ばれ る。正確には J・エリック・トンプソンの修正第2案[59])は確実とは言えませ んが、他に有力な説もないようです。直接論文[60,61]に当たっていないので一部 推定を含みますが、以下の手順で決定されたのではないでしょうか。 1) 照合の起点 スペイン人がやってきたとき、すでに長期計算法は失われており、バクトゥン 以上の単位の値は不明でした。照合に使われたのは、13 Ahau のカトゥン(カトゥ ンは、その最終日の260日暦であらわす)が 1539年11月2日に終わった(1.bat#21 参照)という情報です。13 Ahau のカトゥンの終わりは 260トゥン(約256年)ごと に訪れますから、起点の日付は互いに 260トゥン隔たった一連の日付の何れかで あるはずです。 2)年代測定 放射性同位元素C14(たぶん)によって、マヤ長期計算法の記録された碑文と 同時代であることがはっきりしている試料の年代測定を行います。この種の測定 に誤差は付きものですが、それでも1)で求めた一連の日付の中から3〜4個の候補 に絞りこむことが出来ます。 3)月齢による選択 古典時代の碑文にはマヤ長期計算法とともに月齢も記されています。2)で残っ た候補のうち3114BC8月11日のみが月齢の条件を満たします。 マヤの専門家に流通しているアメリカ製の FORTRAN プログラム(文献[57,58] の八杉氏は“antique”と形容されておられます)には、グレゴリオ暦とユリウ ス暦の変換にバグがあり1日間違った日付になるものがあります。マヤに関する 本の記述を注意深くご覧になれば、本プログラムと食い違いがある例に気づかれ るでしょう(V2.06まで「短期暦」という言葉を使用していましたが、適切でな かったようなので使用しないようにしました)。 マヤの暦には長期計算法以外にも260日暦や365日暦などが一種の暦注として記 されていました。スペイン人がやってきた16世紀初頭のアステカ暦は、これらの 暦注を継承したシステムです[62]。 +aztec と指定して得られるアステカ暦は、トラテロルカ族の暦法とされ、 1)260日暦(Tonalpohualli) マヤ暦の260日暦と同期しているものとしています[62]が、マヤより半日早 く前日の正午に始まります(実際には開始時刻が正午かどうかは定説がない らしい)。 2)365日暦(Xihuitl) マヤ暦とは同期していません。日付は1〜20と表記するのが正しいようですが、 プログラムの都合上 0〜19と表示しています。 のように設定しています。 +aztec$ と指定して得られるアステカ暦は、テノチカ族の暦法とされ、前者 に較べ、260日暦・365日暦とも20日遅れている暦法です(365日暦は月名は +aztec と一致しますが、年初が1か月ずれ、不足の5日(Nemontemi)も1か月 後ろに入ります)。 AD1319〜1351の間に改暦があり、それ以前は逆に +aztec より20日進んだ暦 法であったという説もあります。 << 中国太陽暦-太陰太陽暦複合システム >> 中国とインドの暦は太陰太陽暦というより太陽暦-太陰太陽暦複合システムと とらえた方がよいと考え、本ドキュメントでは以下そのように表現することにし ます。中国のシステムについては china.doc もご覧ください。 <太陰太陽暦部分> 天文学的に計算した中国式太陰太陽暦です(いわゆる「旧暦」のことです)。 清代以後は定朔定気法、唐代から明代までは定朔平気法、それ以前は平朔平気 法で計算しています(つまり中国に対して使うことを想定しているが、以下の ように日本にも適用可能)。当然ながら実際に運用された暦とは異なる場合が ありますのであしからず。  なお、いわゆる「六曜」は「旧暦」の月番号と日番号の和を6で割り余りが 0なら大安、1なら赤口、2なら先勝、3なら友引、4なら先負、5なら仏滅 というように簡単に計算できますので太陰太陽暦に付随して表示できるように しています(Ver2.06からわざと、表示に変数による備考欄指定を必要とするよ うにしました。くれぐれも迷信は信じないようにしましょう[24])。二十七宿 も同様に旧暦の日付から容易に計算可能です(文献[27]も参照のこと)。 計算に使用した太陽及び月の黄経は、長沢工氏『天体の位置計算』[63]記載 の略算式(原典は海上保安庁の久保良雄氏の略算式か?)を、『天体位置表』 [64]を参考にして、古代でもある程度の精度が出るように改造したものです。 当然ながらこれらの式には誤差があります。この為、誤差が日付の境目で発生 した場合、新月や春分の日付に1日の狂いが生じ、閏月の挿入が絡むと1か月 の狂いになってしまうことがあります。この点をご理解のうえ「目安」として ご使用ください(太陰太陽暦の計算に必要な春分や秋分の日付は公式には前年 2月1日に官報で発表されてはじめて確定します)。 『暦の百科事典』[2]及び『こよみ便利帳』[65]にAD1870〜2000の旧暦と新暦 の対照表がありますが、AD1884年4月とAD1908年9月の日付が互いに食い違って います。本プログラムによる計算結果は、前者は『こよみ便利帳』に、後者は 『暦の百科事典』に一致します。その他の日付は『暦の百科事典』の元になっ た神宮暦が誤算をしている昭和22年の閏月を除いて(V2.06 までは『暦の百科 事典』の記載を鵜呑みにしていて気がつきませんでした)3者とも一致します。 歴史記録としては『暦の百科事典』に従うべきです(注『こよみ便利帳』も最 近改訂され新版では朔の日付は記録通りに修正されました)。本プログラムで も明治20年までは TZ=LOCAL(東京の地方時で計算することになる)、それ以降 は TZ=-9 と環境変数を設定すれば正しい結果を出力します。日本では以下の期 間サマータイム(サンマータイム−初日に 0 時を 1 時に進め、終日に 24時を 23時に戻す)が実施されましたが、旧暦の計算には影響が無いようです[2]。 昭和 23年 (AD1948年) 5月 2日 〜 9月 11日 昭和 24年 (AD1949年) 4月 3日 〜 9月 10日 昭和 25年 (AD1950年) 5月 7日 〜 9月 9日 昭和 26年 (AD1951年) 5月 6日 〜 9月 8日 V2.07以降では、日本で施行された唐代の定朔平気暦法も精確に計算できるよ うになっています(ただし、内田計算法A[4]のみで、計算法B,Cには対応し ていません−また、儀鳳暦、大衍暦、五紀暦については文献[4]の情報だけでは 計算ができないため、直接新唐書[66](china.doc参照)にあたりました)。 <太陽暦部分> 二十四気(china.doc 参照)の節気の日に始まり、次の節気の前日までを1か 月とする太陽暦です(文献[3]では「節月」と表現している)。月の番号は同じ 中気を含む太陰太陽暦の月の番号と同じです。節月は暦注の十二直の計算に用い ます(その他、節月と年及び日の干支から導かれる暦注は多数ありますが[2,67, 68]、あまりに迷信に深入りし過ぎるので説明を省略します)。なお、添付のchu. rsc,com.rsc を用いると具注暦に記載される暦注のほとんどすべてを表示可能で す(撰日法は基本的には文献[2,67]によっています。日本暦日総覧[69]の編纂に 伴う調査によれば、これまで知られていた撰日法[67]と、実際に施行された撰日 法には食い違いがあることが明らかになっているそうですが、詳細が未だ公表さ れていない−刊行と調査が並行して進められているためか?−ため文献[68]を欠 番にしています。com.rscは、詳細が公表された時に改訂することになるでしょ う。また、貞享改暦[70]後、規則が変わった暦注が多数ありますが、com.rsc で は考慮されていませんので注意してください。when.exe は現代の占いに使用す ることを目的としたものではないからです)。  寛政暦以前の時代は平均黄経による「節月」を用いる事でほぼ誤差の心配があ りませんが(chu.rscに暦法の自動判定の方法を示しています)、天保暦の時期 については計算式を調べきれなかったため誤差があります(詳細は sekki.bat をご覧ください)。原典[4]より1日遅いものは前日の、原典より1日早いもの は当日の十二直を補正して利用してください(その他の日付の十二直には影響し ません)。 天保暦時代の計算をする場合は、京都の地方真太陽時で計算する必要がありま す。そこで、kyu.rsc 中で set POS=135.87,35.5 set TZ=ZG に相当する指定をしていますが、環境変数 POS, TZ を設定しているとその指定の 方が優先されてしまいますので、これらの環境変数は設定しないでください。 また節月計算用の j2.rsc は正しい月の位置を計算するようにはできておりませ ん。太陰太陽暦の計算には絶対使用しないで下さい。 十二直 − 建除満平定執破危成納開閉を日に配当して循環します。11月(建子     月=北斗七星が子をおざす月)は子の日を建に配当します。他の月も 同様に月の十二支とおなじ十二支の日を建に配当します。 << インド太陽暦-太陰太陽暦複合システム >> インド太陽暦-太陰太陽暦複合システムは、以下のようなアルゴリズムになって います(インド暦制定委員会の勧告[16,71]を基準にし、そうでない民間暦に関す る記述[27]を()付きでコメントする形とします)。 文献[71]は現在手元にないのですが、東京大学東洋文化研究所で文献[27]の著 者であられる矢野道雄氏が「インドの暦の多様性について」という講演を行った 際(1993/12/17)に回覧されて拝見しました。文献[71]によると制定委員会は、何 十種類もの民間暦のアルゴリズムをアンケート式に調査し、現代天文学による太 陽・月・惑星の軌道要素を用いた新たな太陽暦-太陰太陽暦複合システムを制定し た由。また矢野氏が最近収集した民間暦でも数十種類の違いを確認されていると のことです。 1) 基準点 - 計算は東経82゚30'北緯23゚11'の地点で行います。 (もちろん民間暦は、発行地を基準にしているでしょう)  2) 太陽月 - 太陽の視黄経が30゚増える期間が1太陽月(saura)となります。 Vaisakha 月は太陽の視黄経が23゚15'になる瞬間に始まります。 (これは、回帰年を1年と見ていることになります。しかし、民 間暦では、恒星年を1年としています。23゚15'という半端な数字 も、西暦5世紀頃の春分点を歳差を無視して使い続けてきたため 現れたものです) 太陽月は、インド天文学の定数を用いた定気「節月」とみること ができますが、南インド・イラン(Borji暦の時代)・ネパール やバリ島では単に計算に用いられるだけでなく、実際の暦面にも 表示される(つまり実際に太陽暦として機能している)ようです。 インド国内における太陽暦の分布・詳細は把握できていません。 3) 太陰月 - 朔から次の朔までが1太陰月(masa)となります。 太陰月の名前は、その始まりの朔を含む太陽月の名前となります。 (民間暦では望から次の望までを1太陰月とする場合があります。 13.bat #7-#9 を参考にしてください) 4) 閏月 - 太陽月が2つの朔を含む場合、これらの朔で挟まれた太陰月が閏 月(adhika を本来の月名に付けて表現する。前に付けるか後に付 けるかは地方により異なる)になります。中国式と逆に、閏月の 方が、本来の月より先に来ることに注意しましょう。 (太陰月が望から始まるシステムの場合はさらに複雑になります) 5) 欠月 - 逆に太陽月が朔を含まない場合、同じ名前の太陰月は暦に現れま せん(ksaya)。最近はシャカ暦1904年末(AD1982年末〜1983年初) に欠月があったようです(13.bat #7 参照) 。 6) 太陰日 - 太陰月を月の位相で30等分したものです(tithis)。つまり、月の 位相が12゚増える期間が1太陰日となります。白分(Sukla)1-15日、 黒分(Krsna)1-15日の様に数えます。黒分末日は晦に相当する語 で表現するようですが、プログラムの都合で黒分15日(-15と表 記)とします。(望を太陰月の始まりとするシステムでも、満 ちる半月を白分、欠ける半月を黒分とします) 7) 太陽日 - 日出から次の日出までが1太陽日となります。日出を太陽が地平       線上のどの位置に来る瞬間と見るか明瞭でありません。たぶん民       間暦まで考えると、多様な定義があるのでしょう。 太陽日の名前は、その始まりの日出を含む太陰日の名前となりま す。当然、太陰月の場合と同様ダブったり、消えたりすることが あります(この定義では文献[27]にくらべて余日の発生が1日遅 くなりますが、矢野氏によると実際の暦は文献[16]の位置に余日 をいれることが一般的のようです)。 民間暦に多様なバリエーションを生み出しているのは、以下のような選択肢が あるからです[27,72,116]。それぞれ使用されている地方について漠然とコメント をつけていますが、素人が資料をつなぎあわせて並べた情報ですので、雰囲気の み感じるにとどめてください。何でもありのインドでは、すべての組み合わせが 有り得ると覚悟した方が良いのかも知れません。 1) 太陽・月・惑星の位置計算 a) 採用学説[72のpp.25,116のpp.534]。 Arya-paksa 500 〜南インド Ardharatrika-paksa 500 〜ラージャスタン、カシミール、ネパール、アッサム Brahma-paksa 400?〜西インド、北インド Saura-paksa 800 〜全域 Ganesa-paksa 1500 〜西インド、西北インド イスラム的な軌道要素 現代天文学 その他 b) 基準とする地点の経緯度 c) 式か表か 2) 年の表し方 a) 紀年 シャカ紀元 〜南インド ヴィクラマ紀元 〜北インド、ネパール その他 〜ベンガル、昔のネパール b) 満か数えか 3) 年の始まり月 Caitra 〜シャカ紀元のところ Vaisakha 〜ネパール Karttika 〜シャカ紀元、ヴィクラマ紀元のところ Sravana Asadha 4) 太陰太陽月日の表し方 晦日終わり 〜南インド 満月終わり(パターン1)〜北インド 満月終わり(パターン2)〜北インド 5) 太陽月日 使用する 〜南インド、ネパール 使用しない 〜北インド 本プログラムでは、太陰月及び太陰日をサポートしています(最も有効な情報 であり、かつアルゴリズムも小規模ですむと判断したため−現在プログラムのコ ードセグメントにほとんど余裕がありません)。インド太陰太陽暦の暦法選択文 字 'T' は tithis の頭文字と理解してください。V2.07 から追加された変数 ut の値によって晦日終わり(デフォルト)、満月終わり(パターン1)、満月終わ り(パターン2)を切り替えられます[27]。 太陽日は、天体暦機能による日出検索と組み合わせることで計算可能です(と いうより、この計算を行うための準備として、天体暦機能の充実を図ったという のが実態)。太陰日は日付というより月齢に近い概念なので、連続複数計算の (*, *m, *yなどの指定の)基準にできません。しかし、月の位相の検索と組み 合わせることで、ほぼ同様の目的を達することができます(13.bat #7-#9参照)。 太陽月は「節月」として処理可能のはずですが、実例と照合できるほど南イン ド・ネパール・ジャワなどの暦を持ち合わせておらず、カスタマイズ・データを 提示することができません。 矢野氏のご厚意により、氏のプログラムであるpancanga.pas のソースリストを 拝見する機会を得、古典的な日出時刻の計算法が判明しました。それによると、 日出時刻 = 6時 - arcsin(tan(緯度)×tan(太陽の赤緯))×24時/360度 太陽の赤緯 = arcsin(sin(太陽の平均黄経+歳差)×sin(黄道傾角24度)) となります。ただし、歳差は5世紀末に0度で 1年あたり 54秒増えるものとしま す。均時差を無視したこの日出時刻計算式はチベット暦とほぼ考え方は同じです (ただしチベットでは表−それもかなり大ざっぱな−を用いている上、歳差も考 慮されていない点が違います)。 本プログラムの計算には、天体暦自体の誤差、周天円を三角関数の和で近似し ていることによる誤差がありますが、これらは時間にしてせいぜい1分程度であ ると思われます。また、V2.071 まで未解決であった文献[27]P175〜176の例との ずれの原因は、日出時刻計算法だけでなく、月の遠地点の回転量が違っていた (文献[27]には記載がない)ためでした。 indo.rsc, surya.rsc (ちなみに surya は太陽、siddhanta-悉曇-は定説の 意〜アールダラートリカ学派のラータデーヴァのスールヤシッダーンタ(5世紀) とサウラ学派のスールヤシッダーンタ(8-9世紀)は異なる)にカスタマイズ・サ ンプル、13.bat に使用法サンプル、indo.bat, indo.awk に五要素(曜日、ティ ティ、カラナ、ナクシャトラ、ヨーガ)表示例を示しましたので、参考にしてく ださい。V2.072 で 13.bat に追加した碑文の例は文献[73]によるものです。文 献[73]には問題のある例だけが載っているので、13.bat をみて使いものになら ないとお考えになる必要はありません。たいていの場合は合うはずです(こうし た碑文でもっとも信頼のおけるのは曜日であるとのこと)。 V2.072 へのバージョンアップには矢野氏の pancanga.pas 及び文献[73]を参 考にさせていただきました。お礼を申し上げます。もちろん本プログラムは、 pancanga.pas とは独立したプログラムですから、その誤差(およびもし存在し ていた場合にはバグ)の責任は私にあります。 * この項、ダイアクリティカルマーク(文字に付加する'-'、'.'の類)を省略し て表記しています。 なお、暦法選択文字 'T' の暦法は、より一般的に1日の長さが24時間でない 暦を扱えるようになっています(関連があるためジャワ暦に続けて記述しました が、実はバリのシャカ暦もそうです)。 <ゲセン暦> g1.rsc のゲセン暦は、アーシュラ・K・ル=グィンの『闇の左手』[74]に出てく る「ゲセン暦」を扱います。仮にAD1995年1月1日に地球の暦と同期するようにし ましたが、ゲセンの1日は577/600地球日ですので次第にずれていきます。g0.rsc は、whenlt.exe,when.exe 用のデータで、 ゲセンの1日=1地球日として処理 します。 <火星暦>  mc.rsc の火星暦は、火星の季節感を把握するために用意したカスタマイズ・ データです。デフォルトのまま +mc と指定した場合は、グレゴリオ暦の規則その ままで、架空の長い一日を用います。+mc$ と指定した場合は、実際の火星平均太 陽日を用いますが、火星の1年は長いため、1か月が56日(12月は52〜53日)と なってしまいます。後者の場合、日の端数が0.5となる時刻に火星の基準経度0゚に おいて平均太陽が南中するようにしています。火星の公転軌道の離心率が大きい ため、平均黄経で計算している本データは天文年鑑[75]とは一致しません。 <スィーリングのユダヤ太陽暦> ユダヤ太陽暦の存在は死海文書(the Dead Sea Scrolls)などでよく知られてい ます。文献[76]で Barbara Thiering が提示したユダヤ太陽暦を再現するのが scroll.rsc です。実際のユダヤ太陽暦とどれほど一致しているかは全く不明で す。 14年目ごとに3日半の閏日を置き、1日の開始時刻がその度に日の出、日の入 りに変わるという暦法なので0.5日を単位として日付を管理する必要があり、T 暦法としてサポートしました。ことばで説明するのは厄介ですので、4.bat の #8,9 を動かしてみてください。 << その他 >>  その他に、一定の周期で日付に対応付けられたものとして、七曜、干支、マヤ 260日暦、同夜の九王の番号、同365日暦、バイオリズム、二十八宿を指定及び表 示できます。また太陽黄経・月の位相及び惑星の位置情報と暦日の間の相互変換 ができます。 << サポートしていない暦 >> ビルマ暦は Thandeikta という暦書(?)をもとにした、ほぼ新スールヤシッダー ンタと一致するパラメータの太陰太陽暦、ビルマ西部のアラカン暦は Makaranta という暦書(?)をもとにしたタイ暦と一致するパラメータの太陰太陽暦です[48]。 文献[48]でアラカン暦は再現できます(*)が、ビルマ暦についてははっきりした計 算法が不明です。タイ暦と逆に Jyaistha月大になるのが閏年(ただしタイ・ビル マ暦とも Asadha月に相当する月が繰り返されるが、アラカン暦では Caitra月に 相当する Tagu月が繰り返されるる)だけであるため、タイ暦とのプログラムの共 通化が困難なこともあり、ビルマ暦やアラカン暦はサポートしないでおきます。 バリ東北部の Tenganan 暦[35,77]は 3年1095日(つまり平均365日)を周期とし 26〜30日の月からなる、3曜 5曜と同期した独特のもので、3年の月日の配当がカ スタマイズの範囲を越えているためサポートできません。 中国の少数民族である彝族の太陰太陽暦[40]は、計算可能なレベルの情報があ りません。 恒星のヘリアカル・ライジングを基準にした暦はエジプトのシリウス暦が有名 ですが、南アメリカにもあった(昴など)といわれます[78]。また、古代中国に そのような暦を想定する人もいます(アンタレス)[79,80]。 (*)彝族太陽暦と同様に、アルゴリズムは明確だが本当に使われているのかいない のか良くわからない、そういう意味で正体不明の暦 ・閏年は19年7閏法で、(タイと同じ)小暦を19で割って、2,5,7,10,13,15,18 余る年が閏年。 ・Tagu月(Caitra月に相当)小に始まり大小を交互に繰り返す。 ただし、閏年はTagu月(Wazo月ではない!)を2回繰り返す。第2Tagu月は大。 ・閏年のWazo月(Asadha月に相当)満月(白分15日〜太陰日14)の日付の調整の ため、通常小のNayong月(Jyaistha月に相当)を、閏年の場合だけ大にする ことがある。 ・元期(タイ暦と同じAD638年3月22日)から閏年のWazo月満月までの太陽日数 と太陰日数(1か月30日で計算)の差 = (太陰日数×11+650) ÷ 703 の商 (例えば閏年であるAD1994年のWazo月満月は7月22日) << 暦法の定数対照表 >> まとめの意味で、主な暦法に用いられている定数の対照表を示します。この表 をながめると、いろいろ暦の間の関連が見えてくるような気がします。 +============+============+============+============+============+============+ | 暦 法 | 恒星年 | 回帰年 | 恒星月 | 朔望月 | 近点月 | +============+============+============+============+============+============+ |実際の長さ[75] | | | | | | (1994.5年) | 365.256363 | 365.242190 | 27.321662 | 29.530589 | 27.554550 | +============+============+============+============+============+============+ | エジプト暦 | | | | | | |(シリウス年)| 365.000000 | | | | | +------------+------------+------------+------------+------------+------------+ | ユリウス暦 | | | | A*8/99 | | | ヒッポリトゥス[9]| | | | 29.515152 | | +------------+------------+ +------------+------------+------------+ | ユリウス暦 | | A=365+1/4 | | A*84/1039 | | | ローマ [14]| | 365.250000 | | 29.529355 | | +------------+------------+ +------------+------------+------------+ | ユリウス暦 | | | | B=A*19/235 | | |アレクサンドリア[14] | | | 29.530851 | | +------------+------------+------------+------------+------------+------------+ |グレゴリオ暦| | A-3/400 | (A-2/625)*19/235 | | [14]| | 365.242500 | | 29.530592 | | +------------+------------+------------+------------+------------+------------+ | ユダヤ暦 | | C*235/19 | | C=29.5d793H| | | [16,23]| | 365.246822 | | 29.530594 | | +------------+------------+------------+------------+------------+------------+ |ジャーラリ暦| | 365+8/33 | | | | |オマール・カイヤム[12] | 365.242424 | | | | +------------+------------+------------+------------+------------+------------+ |インド暦[27]| D/Y | | D/R | D/(R-Y) | D/(R-P) | |古スールヤシッダーンタ 365.258681 | | 27.321668 | 29.530582 | 27.554594 | +------------+------------+------------+------------+------------+------------+ |インド暦[27]| D'/Y | | D'/R | D'/(R-Y) | D'/(R-P') | |新スールヤシッダーンタ 365.258756 | | 27.321674 | 29.530588 | 27.554598 | +------------+------------+------------+------------+------------+------------+ |イ泰暦[40,50]| D'/Y(?) | E*235/19 | |E=29+373/703| | | | 365.25875? | 365.246687 | | 29.530583 | | +------------+------------+------------+------------+------------+------------+ | タイ暦[45] | 292207/800 | | E=30/(1+11/692) | | | 365.258750 | | | 29.530583 | | +------------+------------+------------+------------+------------+------------+ | バリ暦[35] | F*235/19 | |F=30*(63/64)| | |(シャカ暦)| 365.254934 | | 29.531250 | | +------------+------------+------------+------------+------------+------------+ | イスラム暦 | | | |G=29+191/360| | | [14]| | | | 29.530556 | | +------------+------------+------------+------------+------------+------------+ | チベット暦 | H=27*G/S' | G*12*67/65 |1/(1/G+1/H) |G=29z31q50d | G-2-1/126 | | 作用派[41]| 365.258516 | 365.270256 | 27.321645 | 29.530556 | 27.522619 | +------------+------------+------------+------------+------------+------------+ | チベット暦 | J=27*I/S=I*12*67/65 |1/(1/I+1/J) |I=G+480/707m| I-2-1/126 | | 体系派[41]| 365.270645 | 27.321740 | 29.530587 | 27.522650 | +------------+------------+------------+------------+------------+------------+ | 四分暦 | | A | | B | | | [50]| | 365.250000 | | 29.530851 | | +------------+------------+------------+------------+------------+------------+ | 宣明暦 |K+29699/300T|K=365+2055/T| | 29+4457/T |27+4658.19/T| | [4,66]| 365.256428 | 365.244643 | | 29.530595 | 27.554546 | +------------+------------+------------+------------+------------+------------+ (注) ユリウス暦 朔望月は復活祭の計算に用いられる値 グレゴリオ暦 〃 ユダヤ暦 h = hour = 1/24 day H = Halakin = 1/1080 hour インド暦 D = 1577917500 1ユガの暦日数(ラータデーヴァの古スールヤシッダーンタ) D'= D+328 1ユガの暦日数(サウラ学派の新スールヤシッダーンタ) Y = 4320000 1ユガの恒星年数 R = 57753336 1ユガの恒星月数 P = 488203 1ユガの遠地点回転数(ラータデーヴァの古スールヤシッダーンタ) P'= P-4 1ユガの遠地点回転数(サウラ学派の新スールヤシッダーンタ) チベット暦 z = 日 or 宿 q = 漏刻(チュツゥー)= 1/60 日 or 宿 d = 分 (チュサン )= 1/60 漏刻 m = 息 (ウク )= 1/6 分 S = 2z10q58d(1+17/67)m 体系派(トゥプツィー) S'= 2z10q58d(2+10/13)m 作用派(チェーツィー) 宣明暦 T = 8400(統法) ====(3)= 日付指定 ======== 0)表記法について 以下の記述において A.. A を n 回繰り返し(n は 0 以上の整数) [A] A は省略可能なオプション {A} A は省略できない必須要素 A|B A か B か何れかを選択  とします 1)現在の日付を表示する場合 when(ret) 2)ユリウス通日で日付を指定する場合 when {D|d} [ユリウス通日](ret) d のみのときは、ユリウス通日の元期を、D のみのときは準ユリウス通日 の元期を表示します。whenhv.exe において、ユリウス通日の小数部を指定す ると、時刻まで考慮した表示を行います。V2.05以前とV2.06以後で書式が異 なりますので注意してください。 項番 3)以降も同様ですが、区切りのスペースは半角でも全角でもかまわな い様です(MS-DOSの仕様に依存)。ただし、スペースがないと指定を分離し て認識できませんので注意してください。 ^^^^^^^^^^^^^^^^ 3)汎用太陽暦の日付を指定する場合 when [年] 月の名称 [日[st|nd|rd|th]](ret)  月の名称で対応する汎用太陽暦を検索します(ユリウス暦より先にグレゴ リオ暦に一致しますので、本フォーマットではユリウス暦を指定できません)。 年を省略(指定する月が閏月の場合は年を省略できません)すると今年、日を 省略すると1日になります。V2.05以前とV2.06以後で書式が異なりますので注 意してください。 4)年月日で日付を指定する場合 when [年号文字列|T|Q[#]|G|J|H|F|I|M|E|X|Y|Z|O|N[#]|B| t|q[#]|g|j|h|f|i|m|e|x|y|z|o|n[#]|b] 年 [月 [日]](ret)  月日は省略されるとそれぞれ1と見なされます。 暦法記号  年号文字列  年号文字列を含む最初の年号を指定  年号文字列[+..] 年号文字列を含むn+1番目の年号を指定  年号文字列+n 年号文字列を含むn+1番目の年号を指定 t,T インド太陰太陽暦 q[#],Q[#] 四分暦(#=0〜9で暦法諸元を指定。無指定は5番)  g,G グレゴリオ暦  j,J ユリウス暦 h,H 汎用太陽暦(内容はカスタマイズによる)  f,F フランス共和暦  i,I イスラム暦 e,E 中国太陰太陽暦(計算法自動判定) x,X 〃   (平朔平気法) y,Y 〃   (定朔平気法) z,Z 〃   (定朔定気法) o 「節月」(平均黄経による) O 〃 (視黄経による)  n[#] 日本中国暦日 # 省略 : 日本暦日 (変数 v=593 と同等) # = 1 : 秦漢南朝暦日(変数 v=-221と同等) # = 2 : 北朝唐宋暦日(変数 v=386 と同等) # = 3 : 元明清暦日 (変数 v=1206と同等)  b,B AD1582年10月4日まではユリウス暦 それ以降はグレゴリオ暦 変数 v が指定されているときは、日本中国暦日 後で説明する日付周期が年次周期として作用します (1.bat #60 参照)  省略  AD1582年10月4日まではユリウス暦 それ以降はグレゴリオ暦 変数 v が指定されているときは、日本中国暦日 本プログラム内蔵のデータベースにおいては、年号文字列は 日本暦日 ^標題語.年号,天皇諡号_{_|@}{_|@}$ a) b) c) 外国暦日 ^国名.年号,皇帝名[(亥|子|丑|)]@{_|@}{_|@}$ a) b) c) のように登録されています。コマンドラインで指定した年号文字列がデータ ベース中の年号文字列に「含まれて」いれば一致とみなします。0個以上の 任意の長さの文字列に一致するワイルドカード '*' 及び任意の半角1文字 に一致するワイルドカード '?' が使用できます。a)b)c)部の指定は以下の 意味を持っています。 | _ | @ | ? ----+---------------------+-----------------------+----------------- a) | 「日本」 | 「外国」 | don't care b) | 通常の年号 | 断続年号 | don't care c) | 皇帝の最初の年号 | 2つめ以後の年号 | don't care ただし断続年号とは、年号が中断後復活したり、同一の年号中に皇帝が代わった りした場合の最初以外の部分のことです。  暦法記号が年号文字列の場合、年と日の指定に干支を使用できます。また 年号文字列、汎用太陽暦、インド太陰太陽暦の場合、月の指定に月名を使用 できます。 5)暦法の開始日・終了日を知りたい場合 when 年号|t|q[#]|g|j|J|h|H|i|f|F(ret) 暦法記号  年号  指定年号への改元の日付 t グレゴリオ暦 79年 3月20日 q[#] 四分暦の使用開始日(#=0〜9)   g グレゴリオ暦 1582年10月15日   j   ユリウス暦 -44年 1月 1日(仮日付)   J   ユリウス暦 1582年10月 4日 h 汎用太陽暦の使用開始日(内容はカスタマイズによる) H 汎用太陽暦の使用停止日(内容はカスタマイズによる)   f   グレゴリオ暦 1792年 9月22日   F   グレゴリオ暦 1805年12月31日   i    ユリウス暦  622年 7月16日 6)「季節と週」(仮称)で日付を指定する場合 when 年 季節番号 週番号 曜日番号(ret)  各要素の省略はできません。汎用太陽暦中に閏年と平年の日数差が正で1より 大きい暦法があるとき有効になります。when(lt).exe ではデフォルトで暦法番 号2(暦法指定記号H)に年初を日曜日に固定するタイプの暦法を定義しています。 日曜を曜日番号1としていますので注意してください。 7)マヤ長期暦で日付を指定する場合 when [M|m] [バクトゥン [カトゥン [トゥン [ウィナル [キン]]]]](ret) m のみのときは、0 0 0 0 0を、M のみのときは13 0 0 0 0 の日付を表示しま す。M|m を省略した場合、その他の要素の省略はできません。バクトゥンの指 定は0〜12の範囲外でもかまいません。また、バクトゥンより上位の桁を指定 する事もできます。 8)復活祭の日付を指定する場合 when {R|r} 日付(ret) when 日付 {R|r}(ret) グレゴリオ暦(R)またはユリウス暦(r)での、指定した日付を含む年の復活祭の 日付を表示します[9,16など]。日付の指定方法は1)から11)の何れの方法でも構 いません。日付が省略された場合は今年の復活祭の日付を求めます。{R|r} と日 付の指定順序の意味は、9)から11)までと同様ですので、次項を参照してくださ い。  ユリウス暦での復活祭の計算方法には、112年周期法(+easter$h〜実際には56 年周期)、84年周期法(+easter$a〜検算対象がないので単なる参考(文献[14] のアルゴリズムには矛盾あり)、採用している朔望月の誤差が大きいため同じパ ラメータが長期間使われたとも思われず、多分実際のヴァリエーションも多いは ず)などいろいろあるようですが、ここでは95年周期法(実際には532年周期) をデフォルトにしています[9,81]。 8')時刻指定 when {R|r}[時刻[,0]] 日付 [時刻](ret) when 日付 [時刻] {R|r}[時刻[,0]](ret) R または r の後ろに数字をつけると、時刻を1時間単位(インド暦日でカラ ナを表示するため変数 Z を 6 にしている場合は6時間単位)で指定するという 全く違った意味になります。この機能は通常は必要としませんが、日付指定 9) 〜11)またはインド太陰太陽暦のように時刻まで決定されてしまう指定方法と、 時刻指定を混在させたい場合に使用します。さらに指定の後ろに“,0”が付く とスールヤシッダーンタのアルゴリズムで近傍の日の出日の入り時刻を求めま す。この使用法については 主に 14.bat の #14 や 13.bat をご覧ください。 (この指定が R で始まるのは、指定記号に空きがなくなってしまったからで 深い意味はありません。“,0”をつけるのも同様です) 9)太陽黄経で日付を指定する場合 whenhv s|S[太陽黄経] 日付 [時刻](ret) whenhv 日付 [時刻] s|S[太陽黄経](ret) 春分や秋分の日付及び時刻を知りたい時に使用します。s の場合は平均黄経、 S の場合は視黄経を使用します。太陽黄経が 0 〜 360の場合、指定の日付以降 最初に太陽黄経が指定の値になる日時が求まります。(デフォルトは春分(=0) です)。異なる周期の日時を求めたい場合は 360 を加減してください。日付の 指定方法は1)から11)の何れの方法でも構いません。 8)から12) を再帰的に指定可能である事に注意してください。この場合、日付 の左側は複数日付連続計算の前に評価され、右側は複数連続計算の時点で毎回評 価されます(従って変数を日付によって指定する時には、後者の指定は無効です)。 14.bat の#7,#8に違いを示します。左側同士、右側同士は日付に近いものが先に 評価されます。特に日月食計算の際には指定の順序が重要です。15.bat のコメ ントをお読みください。 コマンドラインを解釈する際に、二十四気名を太陽黄経に読み替えます(例え ば「立春」→「S315」)。これによって 「whenhv 1992 立春」のような指定が可 能です。ただし、「立春」→「s315」と読み替えさせたい等、読み替え方をカス タマイズする場合はコマンドラインの解釈開始前にカスタマイズを済ませておく 必要がありますので、環境変数中でカスタマイズ・ファイルを指定しなければな りません(senmyo.rsc参照)。カスタマイズ結果を実行ファイルに書き込む際も 環境変数中でカスタマイズ・ファイルを指定する必要があります。変数を日付に よって指定する際にはこの読み替えは行われません。 文献[63]の略算式を使用している場合、太陽黄経の精度は角度で 0.1'です。こ れは時間にして約146秒の誤差になります。二十四気の時刻が午前0時からこの誤 差の範囲内にある場合は日付が不正である可能性があります。 10)月の位相で日付を指定する場合 whenhv l|L[月の位相] 日付 [時刻](ret) whenhv 日付 [時刻] l|L[月の位相](ret) 新月や満月の日付及び時刻を知りたい時に使用します。l の場合は平均黄経、 L の場合は地心での視黄経を使用します。月の位相が 0 〜 360 の場合、指定の 日付以降最初に月の位相が指定の値になる日時が求まります。(デフォルトは新 月(=0)です)。異なる周期の日時を求めたい場合は 360 を加減してください。 8)から11)の再帰指定は 9)と同様に可能です。コマンドラインを解釈する際に、 「新月」・「上弦」・「満月」・「下弦」を月の位相に読み替えます。これも太 陽黄経と同様の注意が必要です。 文献[63]の略算式を使用している場合、月の黄経の精度は角度で 0.1'です。 従って月の黄経と太陽の黄経の差である月の位相の精度は 0.2'となります。これ は時間にして約24秒の誤差になります。朔の時刻が午前0時からこの誤差の範囲 内にある場合は日付が不正である可能性があります。 唐代の定朔平気暦法を使用している場合(+senmyo等を指定)、本指定による朔 の時刻は近似計算によるものです。太陰太陽暦ルーチンにより計算する正しい朔 の時刻とは異なります。 11)天体位置で日時を指定する場合 whenhv [S:対象指定1] 求根指定[,求根指定]..[,{対象指定2[T]|jP}] 日付 [時刻](ret) whenhv [S:対象指定1] 日付 [時刻] 求根指定[,求根指定]..[,{対象指定2[T]|jP}](ret) ただし、求根指定 = {P|A|B|C}{天体位置|+|-{Z|E|D|T}}[(計算項目)] P:測心日時による求根 天体位置:検索する計算項目の値を指定 A:測心経度による求根 +:計算項目の極値の検索を指示 B:測心緯度による求根 -Z:補正なしで星の出没を検索 C:測心高度による求根 -E:大気差を考慮し星の出没を検索 -D:大気差を考慮し太陽の出没を検索 -T:夜明けまたは日暮れを検索 対象指定1 = {0p|0dikjmp} (Sならフル指定、sならpのみ) 対象指定2 = {0kj|0dikjmp} (小文字のところに番号がはいる) d:表示座標 i:観測惑星 T:対象指定は一時的変更 k:基準惑星 j:対象惑星 jP:惑星の位相を検索 m:計算項目 p:表示項目 (対象指定は一時的変更) コマンドラインで指定した日時(S,L と異なり直後であるとは限らない)また は環境変数 POS で指定した場所の近くで、指定した天体が、指定した位置(状 態)になる時刻または場所をニュートン法で求めます(位置計算の計算式は、文 献[63,64]を参考にしました)。8)から11)の再帰指定は9)と同様に可能です。 ・「S:対象指定1」により、変数 S の初期値をコマンドラインから変更できます。 変数 S の内容については5章カスタマイズの項及び pdef.rsc のコメントを参 照してください。 ・「日付 [時刻]」で指定した日時または環境変数 POS で指定した場所がニュート ン法の初期値として使用されます。天体位置は変化が激しいため、できるだけ良 い近似日時または場所を指定するようにしてください。8)から11)を再帰指定しつ つ、近似値を絞りこんで行くと良いでしょう。そうでない場合またはそもそも解 が存在しない場合には、解が収束しない場合があります(このとき不正演算でプ ログラムが異常終了することがありますが、特に対策していません)。 ・「求根指定」により、求根対象が日時、経度、緯度、高度のいずれであるかを 指定します。さらに、検索ターゲットの指定が単に「-Z,E,D,T」の場合、末尾の文 字に応じたデフォルトの天体高度を使用して天体の地平座標での高度を検索します。 単に「+」の場合、計算値の時間微分が 0 になる瞬間を求めます。 z,Z: 幾何学的に星が地平線にある瞬間(大気差及び視半径を考慮せず) e,E: 地平大気差-35'8"(高度10kmで大気の外に出て倍になるように線形補間) d,D: 日の出、日の入り時の太陽高度(地平大気差-35'8" - 太陽の視半径16'1.18") t,T: 薄明の開始終了時(明け六つ、暮れ六つ)の太陽高度(-7゚21'40") 計算項目の指定が省略されると、右端の「求根指定」の場合は変数 S の計算項目 m が、そうでない場合は表示項目 p が使用されます。 ・「対象指定2」により、変数 S の内容を必要に応じて変更できます。3文字以 下の場合は、対象星と基準星のみ変更、3文字を越える場合は全体の変更となり ます(指定の先頭が0から始まる時は16進、そうでない時は10進表示であると解釈 します)。「対象指定2」に「P」が続く場合、変数 S の内容に関わらず惑星の位相 が指定値になる時刻を求めます(P が大文字なら S=030x0909に、小文字なら S= 030x0808に相当)。他の指定のための近似時刻を生成するのが主な用途です。「対 象指定2」に「P」「T」が続く場合、変数 S の変更はその場限りで、表示等に影響を 与えません。 これだけの説明ではわかりにくいので、14〜15.bat に収録した実行例も参照願 います。ポイントは、ニュートン法を有効に適用するため、いかによりよい初期値 を生成するかであると言えます。 (付記1)外部プログラムの使用について  太陰太陽暦の項にも書きましたが、本プログラムの計算式は、長沢工氏『天体 の位置計算』[63]の略算式を、『天体位置表』[64]を参考にして改造したもので す。古代の天体位置にはかなりの誤差を含みます(特に天王星、海王星、冥王星 の位置は無意味といって良いほどの誤差)。より精度の高い計算プログラムをお 持ちの方は、それを whenhv.exe から子プロセスとして起動することによって、 whenhv.exe の一部であるかのように動作させることが可能です。詳細はカスタマ イズの項で説明します。 (付記2)本機能追加のいきさつ  本機能は、もともとはインド暦法との関連で日の出時刻を計算する必要を感じ たため追加した機能です。しかし実際に追加してみると、ターゲットを時刻に限 定せず、経度・緯度・高度まで手を広げてもほとんどコードサイズが増えないこ とに気づき、現状のような仕様となりました。日月食に限定すれば、より教科書 的な計算量の少ないアルゴリズムも可能でしょうが、カスタマイズ機能との関連 でプログラムのメモリモデルがスモールモデルに制限され、コードサイズを増や さないことが絶対条件となっており、現状では対応はできそうにありません。 12)データベースに登録されている年号を検索したい場合 when [年号文字列]!(ret) 指定の年号文字列を含む全ての年号を表示し、一致した件数を報告します。本 指定を行った場合、暦の表示は行いません(表示させたい場合は子プロセスとし て自分自身を起動してください)。年号文字列が省略された場合は、データベー スに登録されている全ての年号を表示します。項番4)における年号文字列の一致 検索の順序は本操作によって表示される順序です。これは必ずしも年代順ではあ りません。  なお、1)-11)の何れにおいても、日付部の最後に時刻を指定できます。高機能 版ではこの情報は天体の位置計算に使用されます。 ====(4)= 表示レイアウト指定 ======== 1) [/|-]レイアウト '/'または'-'に続けて表示したい行を順に指定します(78文字以内)。既指定 のレイアウトはキャンセルされます。 2) \レイアウト '\' に続けて表示したい行を順に指定すると、既指定のレイアウトの後ろに続 けて表示。 3) 文字\レイアウト '文字\' に続けて表示したい行を順に指定すると、既指定のレイアウト中の対 応する行指定の前に挿入して表示(指定文字と挿入レイアウトの先頭文字が大文 字小文字の違いを除いて一致する時は、先頭文字は置き換えになります)。また、 レイアウトが空の場合は、指定文字を既指定のレイアウト指定中から削除します (V2.07以降動作が変わりましたので注意してください)。 4) !レイアウト 複数連続日付計算の制御用の'!'文字(後述)の挿入を自動的に行います。これ により、既指定のレイアウトの内'!'に続けて指定したレイアウトの部分が制御上 有効となります。 5) (レイアウト)  ()で囲まれたレイアウトは1行に複数の暦法を詰め込むための特別フォーマッ ト(dfmt - when.rsc 参照 - の7番目等)で表示されます。 6) [レイアウト]  []で囲まれたレイアウトは他とわざとフォーマットを変えたい場合に使用しま す。dfmt の6番目の書式が適用されます。 7) ヘッダ・フッタ レイアウトのヘッダ、フッタ(デフォルトはともに '=')をカスタマイズによっ て変更できます(詳細は page.rsc をご覧ください)。一行表示の場合、変数 R が設定されていると、変数 R で指定する行数表示する度にヘッダ、フッタを表示 します。変数 R が設定されていない場合は、ヘッダ、フッタを表示しません。 8) 暦法指定記号 /=dfghijwkvqetslprmbu 指定文字が小文字の場合の +++++++nca+x++++++++ ==そのまま表示== 表示範囲 ++++++(@)+y++++++++ ユリウス通日 * 常時(時刻0:00:00を表示しない) +++++++++z++++++++ フランス共和暦 * f<=JD<=F ++++++++o++++++++ グレゴリオ暦 * g<=JD<=G ++++++++++++++++ 汎用太陽暦 ? h<=JD<=H +++++++++++++++ イスラム暦 * i<=JD<=I ++++++++++++++ ユリウス暦 * j<=JD<=J +++++++++++++ 日本暦日 * w<=JD<=W ++++++++++++ 中国暦日 ** k<=JD<=K +++++++++++ 在位表検索 ** 検索表 ++++++++++ 四分暦(0-9) ** 設定ファイル +++++++++ 中国太陰太陽暦 *** e<=JD<=E ++++++++ 印度太陰太陽暦 *** t<=JD<=T +++++++ 太陽の位置 *** 設定ファイル * 全版共通 ++++++ 月の位置 *** 設定ファイル ** 軽量版を除く+++++ 一般天体の位置 *** 設定ファイル *** 高機能版のみ ++++ 指定2暦法の差 * 常時 ? 設定に依存 +++ マヤ暦 * m<=JD<=M ++ バイオリズム * b<=JD<=B + date風表示 * 常時 9) 指定例 /db-wgjifm デフォルト /DB-WGJIFM 下限指定変数が+無限大の場合を除いて、上下限指定変数を無視して各 暦を表示。日の端数が無くても 0:00:00 を表示(時刻の表示は秒の端 数を切り捨てたものです)。 /+world.h アケリス世界暦でカスタマイズしH暦法を表示。 /nca 日本暦日、中国暦日、在位表を、改元の効力が元日に遡るものとして表示。 日本暦日、中国暦日が改元前の日付の場合は '=' を付けて示す。 (大正以降等の制度上遡りえない年号を除く) 中国暦日は主な政権のみを表示。 /C@ 中国暦日を、改元の効力が元日に遡るものとして表示。 改元前の日付の場合は '=' を付けて示す。 五胡十六国等の小政権をも表示。 表示した年の月の大小パターンを表示(@Cの順序では正しい表示とならな い場合があります。パターンの詳細は com.rsc をご覧ください)。 /wkv 日本暦日、中国暦日、在位表を、改元の効力が改元日以前に遡らないもの として表示。中国暦日は主な政権のみを表示。 /K 中国暦日を、改元の効力が改元日以前に遡らないものとして表示。 五胡十六国等の小政権をも表示。 /exyz 太陰太陽暦を計算法自動判定、平朔平気法、定朔平気法、定朔定気法 の順に表示。 /EXYZ 太陰太陽暦を計算法自動判定、平朔平気法、定朔平気法、定朔定気法 の順に表示。途中の計算経過をも表示。 /oO 平均黄経、視黄経による「節月」を順に表示。 /(Q1C) 四分暦 #1 及び中国暦日を1行で表示。 /QC すべての四分暦と中国暦日を表示。 /SLP 太陽・月及び惑星の位置を表示します(黄経は視黄経)。 その日のうちに、太陽黄経が二十四気の値になる時、その節気・中気名を 表示。その日のうちに、月の位相が新月・上弦・満月・下弦になる時その 位相名を表示(日付で判定)。 時刻またはユリウス通日の小数部の指定がない場合、環境変数 TZ で指定 される地方時の午前0時の位置を示します(日本時間午後9時の位置では ありません)。 /slp 太陽・月及び惑星の位置を表示します(黄経は平均黄経)。 太陽黄経が1度の整数倍になる瞬間を含まない日が没日です。宣明暦で は1日の始めの太陽黄経の小数部が 0.0000 〜 0.0143 の場合に没日にな ります。このような場合「没」(もつ−と読む)と表示します。 月の位相が12度の整数倍になる瞬間を2回含む日が滅日です。宣明暦で は1日の始めの月の位相を12度を単位として(変数 Z=12 を指定し)表し た小数部が 0.9841 〜 0.0000 の場合に滅日になります。このような場合 「滅」(めつ−と読む)と表示します。 惑星の位置は、変数 s で指定する表示項目しか出力しません。 /u date コマンド風に日付(グレゴリオ暦またはユリウス暦、カスタマイズ によっては他の汎用太陽暦も可−roma.rscの"west:"タグ参照)を表示し ます。 /(*u) u 指定の出力情報を加工し、七曜表にして表示します。一般に行頭の'*' は、出力データの表形式への加工指示となります。 /? コピーライト(when.exe の場合は概略ヘルプ)を表示します。 ====(5)= オプション ======== コマンド名(when等)と前記日付指定の間にオプションをおくと、若干(でも なくなってしまいましたが)の動作変更ができます。日付指定の前に置かれたオ プションは左から右へ評価されます。従って、2つのオプションが矛盾する場合、 右側の指定が有効になります。 V2.071 より、日付指定の後ろにもオプションを書くことができるようになり ました。日付周期指定および関連する変数(D,P,O)は連続計算のたびに評価さ れます。これにより毎年8月の最終土曜日を求める等の計算が可能になりました (1.bat#53など)。その他のオプションは日付指定の前のオプションと同様最初 の日付の計算の前に評価されます(ちょっと不自然ですが、プログラムの都合で これだけは右から左に評価されます−すなわちより日付指定に近い方が有効にな ります)。 1)変数の指定 変数名{=|:}数値 ・・・・・ 要素の間に空白を空けてはいけません "変数名{=|:}日付" ・・・・・ 日付が数字で始まるときは、日付の先頭に空白が必要 (rscファイル中では、引用符が使えませんが、そのか わり空白に全角文字を使用できます) のフォーマットで変数を指定 各暦を表示する日付の下限を指定 変数名  対応する暦   初期値 w    日本暦日 −無限大* k    中国暦日 −無限大* t    印度太陰太陽暦 1749993 f    フランス共和暦 2375840 g    グレゴリオ暦 2299161 h 汎用太陽暦 −無限大 i    イスラム暦      1948440 j    ユリウス暦     −無限大 e    太陰太陽暦     −無限大 m    マヤ暦 584283 b(誕) バイオリズム +無限大** * 年号の無い場合は表示されない ** これに誕生日を指定する   各暦を表示する日付の上限を指定 変数名  対応する暦   初期値 W    日本暦日 2483686 K    中国暦日 2433190 T    印度太陰太陽暦 +無限大 F    フランス共和暦 2380687 G    グレゴリオ暦 +無限大 H    汎用太陽暦 +無限大 I    イスラム暦     +無限大 J    ユリウス暦      2299160 E    太陰太陽暦     +無限大 M    マヤ暦 2456283 B(死) バイオリズム +無限大 その他 変数名   意味  初期値 N,n* 日本暦日備考欄選択 4 *小文字の時には C,c* 中国暦日備考欄選択 1 第一バイトのみ U,u 全暦法備考欄マスク 4 変更 (0 にすると全ての備考をサプレスできます) U?,u? 指定暦法備考欄選択 暦法に依存 (?はFGHIJNCQEOAの何れか*) UT,ut インド太陰太陽暦のパターン 1 (1〜3のパターンあり) UM,um マヤ長期暦の表示桁数 5 US,us 太陽の表示情報選択 0xFF (小文字の時標準フォーマット) UL,ul 月の表示情報選択 0xFF (小文字の時標準フォーマット) UD,ud 月末日の表示方式(NCQE暦法) 0 (1なら翌月0日) D?,d? 年度・日付の境界指定** 0 **例えば -6 なら (?はFGHIJの何れか*,Cの場合はc.rsc参照) 前日の午後6時 ( またRの場合はeaster.rsc参照) r 一行の字数 44 R 一画面の行数 指定なし Y,y Y年後の日付を表示 0 L,l L月後の日付を表示 0 D,d    D日後の日付を表示 0 P,p 日付周期の番号を指定 1 (Ver 1.x の T+1 に相当) O,o 日付周期の元期を指定 指定なし x 定朔平気法の下限 1947169 太陰太陽暦の自動判定用 X 定朔定気法の下限 2321912     〃 S,s* 天体表示計算方法 0x03000E0E (詳細は5章カスタマイズの項及び pdef.rsc 参照) sa,sb 天体表示計算法の (a-> n=1, b-> n=2) sc,sd 第nバイトのみ変更 (c-> n=3, d-> n=4) a ニュートン法リトライ回数 100 (一般) A ニュートン法リトライ回数 100 (PABC書式) z 力学時と世界時の差 指定なし 単位は1/1000秒、指定のないときは『こよみ便利帳』[65]、 『天体位置略算式の解説』[82]中の計算式によります。 Z 角度の単位 1度 太陽・月・惑星の位相で日付を指定及び表示するときの、位相 の角度の単位を指定します。 v 入力日本中国暦法 指定なし 日付指定を「年 月 日」で行うとき、使用する日本中国暦法をそ の暦法の朔閏表の開始年で指定します。指定がないとユリウス 暦/グレゴリオ暦を使用します。 V 表示日本中国暦法 指定なし 四分暦・太陰太陽暦と日本中国暦日の比較を行うとき、比較      対象となる日本中国暦法をその暦法の朔閏表の開始年で指定 します(v,V で使用する開始年については china.doc第3章朔 閏表一覧参照)。 2)連続計算の指定 *[[-]mm][Y|y|M|m|D|d|P|p|A|a|B|b|C|c][/nn][(tt[Y|y|M|m|D|d])[delta]] または *[[-]mm][Y|y|M|m|D|d|P|p|A|a|B|b|C|c][(tt[Y|y|M|m|D|d])[delta]][/nn] nn 分の mm 単位周期で tt 個の連続した日時または位置について計算を行います。 単位指定 Y or y: 単位を年とします。暦法 FGHIJNWCK に有効です。 ただし、nn=1とみなされます。 単位指定 M or m: 単位を月とします。暦法 FGHIJNWCKQEXYZ に有効です。 ただし、nn=1とみなされます。 さらに、暦法NWCKQEXYZの場合または暦法FGHIJに太陰太陽暦、 定気太陽暦が割り当てられている場合、mm=1とみなされます。 単位指定 D or d: 単位を日とします(whenhv.exe では、'd'の場合offset[1] (mc.rsc参照)を1日の長さとして使用します)。 単位指定 P or p: 単位を3)項で説明する日付周期とします。 単位指定 A or a: 経度の刻みを度単位で指定し、観測経度を変えて計算します。 単位指定 B or b: 緯度の刻みを度単位で指定し、観測緯度を変えて計算します。 単位指定 C or c: 高度の刻みをkm単位で指定し、観測高度を変えて計算します。 選択される暦法は、有効な暦法の内最後に表示された暦法です。ただし、レイ アウト中に '!' があると、それ以後の暦法は選択の対象になりません。 ttを省略すると、無制限に計算を続けます。また、1行表示の場合、ttに単位が ついているとその年月日の終わりまで計算を行います。  deltaを指定すると、表示に delta秒ディレイが入ります(v2.05からの機能です)。 なお、添付の c.rsc を用いると、計算した結果を七曜表などの形に整形して出 力します。詳細は c.rsc のコメントをご覧ください。この機能は、MS-DOS が マルチタスクなら awk 等の他のツールと組み合わせてより柔軟に処理できると ころですが、そうも言ってはいられないので V2.07 で追加しました。 3)日付周期の指定 ・変数 O も変数 P も設定されていない場合 m[/n] 指定の日付から n 日周期の m 日後である最初の日を表示します(n が省 略されれば m 日後とみなします)。 m1/n1 m2/n2 指定の日付から n1 日周期の m1 日後でかつ n2 日周期の m2 日後である 最初の日を表示します(3組以上指定してもかまいません)。 ・変数 O で元期が設定され、かつ変数 P が設定されていない場合 m[/n] 元期から n 日周期の m 日後である、指定の日付の直後の日を表示します。 m1/n1 m2/n2 元期から n1 日周期の m1 日後でかつ n2 日周期の m2 日後である、指定の 日付の直後の日を表示します(3組以上指定してもかまいません)。 ・干支/ 「指定の干支に対応する番号/60」 という指定と等価です。 ・曜日/ 「指定の曜日に対応する番号/7」 という指定と等価です。 ・二十八宿/ 「指定の二十八宿に対応する番号/28」 という指定と等価です。 ・260日暦番号/260日暦記号 または 260日暦記号/260日暦番号(マヤ暦) 「指定の260日暦日に対応する番号/260」 という指定と等価です。 260日暦番号が 0 の時は、260日暦番号は任意と見なされます。 260日暦記号が ツォルキン の時は、260日暦記号は任意と見なされます。 ・365日暦日付/365日暦月名 または 365日暦月名/365日暦日付(マヤ暦) 「指定の365日暦日に対応する番号/365」 という指定と等価です。 ・n/{P|S|I} または {P|S|I}/n 「バイオリズムの{P|S|I}に対応する番号/{P|S|I}の周期」と等価です。 ・変数 P が設定されている場合 表示する日を n1,n2,..の最小公倍数単位で前後に調整します。 ・n{st|ST|nd|ND|rd|RD|th|TH}/ 変数 P に n を代入します。 ・last+.. 変数 P の値を n+1 減らします。 ・next+.. 変数 O を 1、変数 P の値を n 増やします。 (詳細は1.batの例を参照してください。) 4)出力文字のマッチング =[=][~]マッチング文字列 使用方法の詳細は6章を参照してください。 5) 子プロセスへのオプションの受け渡し {~|'}{!|オプション} 「~オプション」と指定すると、オプションは親プロセスでは解釈されずに子プ ロセスに渡されます。「'オプション」と指定すると、オプションは親プロセスで も子プロセスでも解釈されます。子プロセスに渡す最初のオプションが 「~!」の ときは、子プロセスとして親プロセスと同じプログラムが起動されます。6章も ご覧ください。 6)カスタマイズ <カスタマイズファイルの読み込み> +[+|!][-|カスタマイズファイル名[+カスタマイズファイル名]..][$[選択文字]] カスタマイズファイルの読み込みを指示します。カスタマイズをすることによっ て、表示の細かな変更や、閏月判定法、外字の処理等の多様な変更が可能です。 ただプログラムの論理に直結するデータを変更することになりますので取扱には 注意してください。具体的なカスタマイズ方法については、添付の when.rsc な どのコメントもご覧ください。なお、実際に使用する場合はご自分が変更したい 部分のみ切り出して使用されると良いでしょう。 カスタマイズファイルは、変数 WHENPATH で指定されるディレクトリになけれ ばなりません(V2.07で参照する環境変数がかわりましたので注意してください)。 ファイル名が省略された場合は コマンド名.rsc とみなします。拡張子は常に .rsc ですので指定してはいけません。カスタマイズファイル名が'-'の場合は、 標準入力からデータを読み込みます。これは sed 等と組み合わせると便利です。 選択文字(1文字のみ可)が指定されている場合は、'#'の直後にその選択文字 が続くパターンをコメントの開始と解釈しません。'$'があって選択文字が省略さ れた場合、選択文字は'$'となります。選択文字の指定('$')がない場合、選択 文字は'<'になっています。また常に、when.exe では "#|"、whenhv.exe では "#|"、 "#>" もコメントの開始と解釈しません。つまりデフォルトでは、 whenlt.exe #< で始まる行は内容を解釈、#|,#> で始まる行はコメント when.exe #<,#| で始まる行は内容を解釈、 #> で始まる行はコメント whenhv.exe #<,#|,#>で始まる行は内容を解釈 となっている訳です。 なお、'$'は選択文字の指定を意味しますので、'$'を含むファイル名は指定で きません。また、数字で始まるファイル名も、日付指定の一部とみなされますの で使用できません。 ファイルフォーマットに不正な部分があるとエラーメッセージを表示して異常 終了します。この場合は、+![カスタマイズファイル名]の様に指定すると、ファ イル読み込みの経過を表示しますので、不正な部分を確認する事ができます。 また、++[カスタマイズファイル名]の様に指定すると、カスタマイズ情報を実 行ファイルに書き込むことができます。1度書き込めば次からはカスタマイズファ イルを指定する必要がなくなります。ただし、command: で指定した部分、在位 表データ及びマッチングパターンを保存したコメントファイルは書き込みの対象 になりません。また書き込まない場合でも、カスタマイズファイル中で再帰的に カスタマイズファイルを指定することは避けてください(在位表データ部分また はレイアウト指定に含める事は可能です)。変数をカスタマイズする方法につい ては添付の pc98.rscを参照してください。exe ファイルは圧縮しない状態で実 行してください。また「プログラムとメモリが一致しません」というエラーメッ セージが出る場合は環境変数中で指定してみてください。 set when=++... <汎用太陽暦> 汎用太陽暦のカスタマイズ方法を whenhv.rsc 中の指定を例として示します (グレゴリオ暦の場合)。太陰太陽暦、定気太陽暦の設定例は、whenhv.rsc をご覧ください。ここではすべての設定を行っていますが、変更しないフィー ルドは '*' で代用できます。また、後続のすべてのフィールドを変更しない 場合は、';'で打ち切ることができます。 +- 表示及び定義範囲の下限及び上限(例は無限大の場合) | +- 元期のユリウス通日(閏日の直後を指定) | | +- 閏日を挿入する月(+12nで元期の年次を調整可能) | | | +- 備考欄の表示内容(注1) | | | | +- 年度及び日の境界の指定(shire.rsc参照, | | | | | + 平年と閏年の日数差 変数D?と同じ) | | | | | | +- 閏の規則の段数 -----------------+ | | | | | | | +- 一年の月の数 | | | | | | | | | +- 146097日が4置閏単位 ----| | | | | | | | | | +- 36525日が100年 --| | | | | | | | | | | ( 4 x 100 = 400) | +-+ | | | | | |  | | | +----+- 無視 --+ | | | | | | | | | | | | | gene1: -,+ | | | | | | | | | | | -,+,1721120,2,002,0,1, 2, 12,146097,36525, 0, 0, 4, 100, 0, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 29, 0 | | | | | | | | | | | | | +---+---+---+---+---+---+---+---+---+---+---+--+- 月の日数 [+(月の始めの七曜番号+1)x010000](注2) genem1: "グレゴリオ暦", ------------ 暦法名 "January", "February", "March", "April" , --+ "May", "June", "July", "August", --+- 月の名称 "September", "October", "November", "December", --+ "",""(13,14番目の月の名称) ---------------------+ (注1)備考欄表示内容は16進数(0[0-9a-fA-F]..)で指定するのが便利です。 備考欄指定は、汎用太陽暦以外の暦法でも指定可能です。指定可能な暦 法は変数指定の項を参照してください。指定の意味は以下の通りです。 bit 0 (1) = 王名表示 1: 表示 0: 非表示 bit 1 (2) = 日の干支表示 1: 表示 0: 非表示 bit 2 (4) = 月の名称/干支表示 注3 1: 表示 0: 非表示 bit 3 (8) = 年の干支表示 1: 表示 0: 非表示 bit 4-6 = 年月日王名の順序 0: 年月日王 1: 年日月王 2: 月日年王 3: 日月年王 4: 王年月日 5: 王年日月 6: 王月日年 7: 王日月年 bit 7 (8) = 曜日表示 1: 表示 0: 非表示 bit 8 (1) = 月の九星の表示 1: 表示 0: 非表示 bit 9 (2) = 年の九星の表示 1: 表示 0: 非表示 bit 10 (4) = 年の九星の上元の流儀 1: 日本式 0: 中国式 bit 11 (8) = 日の十二直の表示 注4 1: 表示 0: 非表示 bit 12 (1) = 日の二十八宿の表示 1: 表示 0: 非表示 bit 13 (2) = 月の二十八宿の表示 1: 表示 0: 非表示 bit 14 (4) = 年の二十八宿の表示 1: 表示 0: 非表示 bit 15 (8) = 日の二十七宿の表示 注5 1: 表示 0: 非表示 bit 16-17 = 二十七宿の閏月配当 注6 0: 本月本説と同様 1: 閏月本説流布版 2: 閏月本説訂正版 3: 閏月異説 bit 18 (4) = 年次周期番号の表示 注7 1: 表示 0: 非表示 bit 19 (8) = 次項の意味     1: 曜日の表示内容 0: 七曜のオフセット bit 20-23 = 曜日の表示内容 6: 六曜 注5 7: 月に固定した七曜 注2 9: 九星 甲午折返有 注8 10: 九星 甲午折返無 注8 bit 24-32 = 年の干支のオフセット (注2)備考欄表示指定の曜日の表示内容が 7 の時のみ意味があります。 (注3)年の干支を表示するとき干支を、そうでないとき名称を表示します。 (注4)節月の備考として用いるときのみ正しい表示になります。 (注5)太陰太陽暦または太陰太陽暦時代の日本中国暦日の備考として用いるとき のみ正しい表示になります。 (注6)詳細は『日本の暦』[67]を参照してください。デフォルトでは前月と同じ     配当になります。 (注7)indictio.rsc を参照してください。 (注8)chu.rsc でカスタマイズし、暦法 H の備考欄として用いるときのみ正し い表示になります。 これらの暦注は主に『日本暦日便覧』[5]に刺激されて追加した機能で、古文 書の日付の割り出しに使用する事を意識したものです(六曜と九星は明治以降に 盛んになったのだそうですが)。そのため、連続計算機能を強化し、併せて簡易 grep 機能も V2.05 以降サポートしました(MS-DOS がマルチタスクならこんな grep 機能はいらないんですが)。くれぐれも迷信に惑わされないように注意し ましょう。 <天体の位置計算及び表示> 変数 S の内容によって、天体の位置計算及び表示内容をカスタマイズできます。 変数 S(デフォルト003000E0E) bit 0-7 = sfmt bit7 に対応して表示するデータの指定 内容は bit 8-15 と同様 + pdef.rsc 参照 bit 8-15 = 日時計算に使用するデータの指定(()内は単位指定のunitsym+の オフセット) 00: (1) 対象星の日心(月なら地心)平均黄経* 01: (1) 対象星の日心(月なら地心)真黄経* 02: (1) 対象星の日心黄緯 03: (0) 対象星の日心距離/天文単位 04: (1) 対象星の測心経度* 05: (1) 対象星の測心緯度 06: (0) 対象星の測心距離/天文単位 07: (2) 対象星の視半径(赤道半径による) 08: (1) 太陽と対象星の位相差(日心平均黄経による)*,** 09: (1) 太陽と対象星の位相差(日心真黄経による)*,** 0A: (1) 観測星と対象星の日心離角 0B: (1) 太陽と対象星の測心離角 0C: (1) 太陽と観測星の対象星心離角(要するに対象星の欠け具合) 0D: (4) 対象星の光度(明るい部分の面積比で単純に計算)*** 0E: (2) 対象星と基準星の測心離角* 0F: (2) 対象星と基準星の経度差* 10: (2) 対象星と基準星の緯度差 11: (0) 対象星の視半径を分母とする食分* 12: (0) 基準星の視半径を分母とする食分* 13: (5) 均時差 14: (3) ΔT 15: (1) 対象星の大気差補正付き測心緯度 15: (1) 対象星の大気差補正付き測心緯度 16: (0) ユリウス通日+0.5日 17: (0) ヨーガ計算用(平均黄経) 18: (0) ヨーガ計算用(視黄経) * は光行差を考慮 ↑ ** 対象星が太陽なら黄経そのもの 16進 bit 16-19 = 対象星の番号 内容は bit 24-27 と同様 bit 20-23 = 基準星の番号 内容は bit 24-27 と同様 bit 24-27 = 観測星の番号(pname, pflag, pdata のオフセット) (デフォルトでは以下の様になっている) 0: 太陽 1: 水星 2: 金星 3: 地球 4: 火星 5: 木星 6: 土星 7:天王星 8:海王星 9:冥王星 A: 月 B: 本影 C: 恒星 D:春分点 E: 北極 F: 天頂 bit 28-31 = 測心経緯度の準拠座標 0: 地球の黄道座標 1: 赤道座標 2: 地平座標(方位角は北から東回りに測る) (1,2 は axis, parallax, Sid で各惑星用にカスタマイズ可) whenhv.exe では、よく使用されると思われるパターンを漢字であらかじめ登録 しており、これらは S:xxxx と書かなくても漢字で指定可能になっています。こ れらと、日付指定 11)の ABCP 指定部(求根指定)を組み合わせることにより、 多様な指示が可能です。特に、日月食の計算については、15.bat のサンプルプロ グラムをご覧ください(本プログラムでは、日食地図の座標は経緯度を数字で出 力するだけですが、『地図をください』−私はこれを見て where.exe(仮称)の制 作をとりやめました−等の世界地図を作図するソフトと組み合わせることにより、 ビジュアルな日月食地図の作成も可能でしょう)。 sdscsbsa 一部指定用変数名 (s) −−−− 一部指定用の変数の設定部分 南中 = S:023000404 -> 太陽の方位角を計算、表示 角度 = S:013020F10 -> 金星と太陽の赤経の差を計算、赤緯の差を表示* 離角 = S:003020F0F -> 金星と太陽の黄経の差を計算表示* 留 = S:01302040E -> 金星の赤経を計算、太陽との視距離を表示* 光輝 = S:003020D0D -> 金星の光度を計算、表示 接近 = S:003020E0E -> 金星と太陽の視距離を計算、表示 位相 = S:00302090E -> 金星と太陽の位相差を計算、視距離を表示 日食 = S:0230A1212 -> 日食の食分を計算、表示 月食 = S:023BA1111 -> 月食の食分を計算、表示* * 通常地心での値を使用しますので、環境変数 pos で、観測位置を地心にして ください。 pname に、外部プログラムと起動オプションを登録することにより、位置計算 法自体を変更できます。nipe.rsc, sun.rsc, mars.rsc を参照してください。ま た、外部プログラムの例として、太陽の位置計算を高精度で行う sun.exe、ケプ ラーの楕円運動を扱う ellipt.exe を添付しておりますので参考にしてください。 外部プログラムと whenhv.exe のインタフェース   ・起動形式 外部プログラム名 オプション ユリウス通日 ユリウス通日は #.####E##のような形式で渡します。ET を使うか、UT を 使うかは、pflag の指定によります。 ・外部プログラムの出力   標準出力に、平均黄経、真黄経、真黄緯、距離をこの順に改行区切りで   出力(角度の単位は度、距離は日心の場合は天文単位、地心の場合は km) 作業ファイルとして、when.$$$ を使用します(ただし、NIPE.EXEを使用 する場合はそのフォーマットに合わせています)。 deltaT に、外部プログラムと起動オプションを登録することにより、ΔT計算 法自体を変更できます。nipe.rsc, sun.rsc を参照してください。 外部プログラムと whenhv.exe のインタフェース   ・起動形式 外部プログラム名 オプション ユリウス通日 ユリウス通日は ET に対応する値で、#.####E##のような形式で渡します。 ・外部プログラムの出力   標準出力に、ΔTを出力(単位は秒)。 作業ファイルとして、when.$$$ を使用します。 外部プログラムの起動に伴うオーバーヘッドを避けるため、RAMディスク等の 速いデバイスを使用することをおすすめします。 <在位表> 在位表データは、カスタマイズファイルの、行頭に '$' がある行以降に配置さ れ、when*.exe が使用する在位表を提供します(この部分には選択文字は利きま せん)。データの構成は、以下の凡例の通りです。標準添付のデータは朝鮮国王 位年号一覧表などになっています。在位表データ備考欄の表示内容は変数 ua に よって指定します。 <凡例> (1) No YY MM DD Base BIK Nation.Nengo,Name No : ダミー(代数) YY : 即位年(西暦) MM : 即位月(不明の場合は 0) DD : 即位日(不明の場合は 0) Base : 即位時の在位年数(0:即位の翌年を元年とする、63:YYと同じ値とする) B : 表示指定 A で在位開始時点を元日に遡るか否かのフラグ(_ on/@ off) I : 断続年号か否かのフラグ(_ off / @ on) K : 即位年号か否かのフラグ(_ on / @ off) Nation : 国名(省略時は直前と同じ) Nengo : 年号(@ は「(王名)」とみなす) Name : 王名(省略時は直前と同じ) (2) E YY MM DD Base BIK Reason YY : 滅亡の前日の年(西暦) MM : 滅亡の前日の月(不明の場合は 12) DD : 滅亡の前日の日(不明の場合は 31) Base : ダミー BIK : ダミー Reason : 理由 (3) ! Com Com : 月日に使用している暦法の指定 なお、 -4096 <= YY < 4096、0<= Base < 64 です ====(6)= 出力行の加工 ========= 1) '^' ではじまる出力行 '^' ではじまる出力行は、コメントファイルの条件部との一致性をチェックし、 一致している場合は、コメントファイルのコメントフィールドを行末に付加して 出力します。条件部が複数の場合、全ての条件にマッチしたとき、一致とみなし ます。コメントファイルの形式は以下のようになっています。 任意の行  ・・ $ ←先頭の'$'がマッチングパターンの開始 # 注釈(この部分には選択文字は利きません) 条件部 [& 条件部]..:[@|付加するコメントフィールド] ・・・・・・・・・・・・・・ ・条件部の書式 空白 ↓ (1) > 日付 出力しようとする日付が指定の日付ないし、より後のとき一致 (2) < 日付 出力しようとする日付が指定の日付より前のとき一致 (日付は「(3) 日付指定」1)〜11)の何れでも指定できます)。 (3) =文字列 出力しようとする文字列中に指定の文字列があるとき一致 (4) ~文字列 出力しようとする文字列中に指定の文字列がないとき一致 (文字列の一致アルゴリズムは年号文字列と同じです)。 (5) >桁 文字列 出力行の指定桁以降を文字列と比較し辞書式順序で「以上」なら一致 (6) <桁 文字列 出力行の指定桁以降を文字列と比較し辞書式順序で「未満」なら一致 ↑ (文字列にワイルドカードは使えません) 空白 ・コメントフィールド (1) 空     マッチした行に対するコメントの追加の終了を意味します。 (2) '@' マッチした行の出力をとりやめることを意味します。 (3) その他 コメントフィールドを追加します。この時、'\'は、改行コード に読み替えられます(改行コードがあっても行のマッチング判 定においては、独立した行とはみなしません)。 2)出力文字のマッチング =[=][~]マッチング文字列 コマンドラインオプションとして本指定を行うとマッチング文字列に一致する 要素を持った行を選択的に出力する(あるいはしない)ようにすることができま す。マッチング文字列の一致アルゴリズムは年号文字列と同じです。 (1) = 一致する行を1行出力して終了する (2) =~ 一致しない行を1行出力して終了する (3) == 一致する行を出力しつづける (4) ==~ 一致しない行を出力しつづける 3) '!' ではじまる出力行 '!' ではじまる出力行は、'!' の次の文字からをコマンドとみなし子プロセス で実行します。使用法は、中国暦日(年号検索法)のサンプル(8.bat)を参考 にしてください。(重要な注意)子プロセスを起動しつつ連続計算を行う場合は、 MS-DOS の設定を break on にしておいた方がよいでしょう。 ^^^^^^^^ 4) '*' ではじまる出力行 '*' ではじまる出力行は、表形式への整形が行われます。 詳細は、c.rsc をご覧ください。 ====(7)= 環境変数 ========= 1) 起動コマンド名 (WHEN etc) 頻繁に使用するオプションは起動コマンド名と同じ名前の環境変数に設定して おけます。代入記号には'='と':'が使用できます(環境変数の設定時に'='が使え ないので':'を代わりに使います。':'そのものを指定したい場合は前に'\'をつけ てください)。代入記号の右辺が欠けている場合、下限用変数なら−無限大、上 限用変数なら+無限大が設定されます。本環境変数はコマンドラインに先だって 評価されます。従って、環境変数とコマンドラインの指定が矛盾する場合後者が 有効となります。MS-DOS V2.11 では、プログラムが起動コマンド名を取得できま せん。従って、プログラム名を変更しても参照する環境変数名が変わりませんの で注意してください。MS-DOS V3.1 以降では、このような制限はありません。 set WHEN=+ /Db-wcGJIFM 2) POS 天体の位置計算時に使用する観測地の位置を指定します。東経及び北緯が+、 西経及び南緯が−です。環境変数が設定されていない場合、東京(139.744694, 35.654444, 1.0, 0.0)を観測地として計算します。本環境変数はコマンドライ ンより後で評価されます。 set pos=経度[,緯度[,地球の半径[,高度]]] 3) TZ 太陰太陽暦の計算の基準となる地方時を世界時からの時差(東経が負)で指定 します。環境変数が設定されていない場合は、-9.0 とみなします。環境変数が設 定されていて時刻の指定がない場合 POS で指定された経度を使用します。環境変 数の先頭が 'ZG' の場合、均時差を考慮にいれて真太陽時を用います。先頭が、 'ET' の場合、ΔTを無視し暦表時で計算します。末尾の英字は無視されます。ま た、","で区切って続けて数字を指定すると、朔の日付判定用の進朔量とみなされ ます。本環境変数はコマンドラインより後で評価されます(senmyo.rsc 等は内部 で進朔量を設定しているため、通常は意識する必要はありません。逆にこの指定 をキャンセルするときに使用します)。 set TZ=JST-9 (平均太陽時を用いる) set TZ=ZG-9 (真太陽時を用いる) set TZ=ET-0 (暦表時を用いる) set TZ=LOCAL (環境変数 pos で指定した経度における地方時を用いる) set TZ=-9,+6 (朔の判定時、日の区切りを6時間早める) 4) 87 この環境変数を N に設定すると、コプロセッサが実装されているか否かをチェ ックすることなく、常にエミュレーションライブラリを用いて浮動小数点計算を 行います。whenhv.exe は機種依存していますが、本環境変数を N とすることに よって、暴走を回避できる場合があるかもしれません(保証はできませんが)。 set 87=N (浮動小数点計算にコプロセッサを使用しない) ↑ = の前後にスペースをいれないようにしてください。 5) WHENPATH 本プログラムは、参照するファイルを環境変数 WHENPATH に指定されたディレ クトリから検索します。.rsc, .exe 等の拡張子のファイルをおくディレクトリ は、WHENPATH に登録しておいてください(ただし、カレントディレクトリに同 名のファイルがあったり、ファイル名をフルパスで指定した場合は、そちらが優 先されます)。 set WHENPATH=A:\WHEN ↑ '\' は不要です。 ==(8)===== 変更来歴 ========== 主な変更のみを示します。 1986.03.19 文献[3]巻末の日本暦日年暦表をテキストファイル化完了。 この後1988.02頃まで中断。 1988.08.03 when.exe の原型完成。この頃はフリーソフトウェアという発想なし。 1989.12.02 V1.0 初版リリース 日本暦日、各種太陽暦及びマヤ暦のサポート 1990.03.25 V1.2 Ver 1 の確定版 浮動小数点数を使わないようにし、機種依存性を排除した 1991.07.31 V2.01 Ver 2 は中国史暦日和中西暦日対照表[37]の入手を契機として、 この年の3月〜5月にかけて開発されました。 中国暦日及び計算による中国式太陰太陽暦のサポート カスタマイズファイルによるカスタマイズを可能とした (カタスマイズ機能のためメモリモデルがスモールに制限される) 1991.12.15 V2.05 PC-VAN の SIG ORIENT での要望・指摘への対応 コンパイラのコード生成効率の向上によるコード領域の余裕を利用 1992.06.30 V2.06 カスタマイズファイルの充実 ユダヤ暦及び復活祭のサポート 基本的な暦注への対応 コンパイラのコード生成効率の向上によるコード領域の余裕を利用 1993.03.20 V2.07 天体暦機能の充実(外部プログラムの参照など) 汎用太陽暦の拡張(チベット暦、イ泰暦など) インド式太陰太陽暦(Tithisの計算)のサポート 日本で用いられた唐代の暦法のサポート 詳細な暦注への対応 七曜表形式出力のサポート ヘルプ機能の簡略化によるコード領域の余裕を利用 1993.09.15 V2.071 インタフェースの改良、変更 bali.rsc によりバリ島ウク年暦注の追加(java.rscではコメントアウト) 中世シチリア及びイギリスの暦事情のサンプル west.rsc を追加 roma.rsc で中世風日付表記ができるようにした whenhv.exe, nipe.rsc を nipe V3.0X 対応に変更 1993.10.31 V2.072 春秋戦国用 china.rsc を作成 ローマ教皇用 pope.rsc を作成 インド暦の修正 Almanak Gampang によりジャワ暦の日付を修正(Dal年の処理を含む) イラン暦の置閏法を33年8閏に変更 1994.06.12 V2.08 when.doc 中の解説および参考文献を大幅拡充 タイ暦のサポート、thai.rsc の変更 バリ島のシャカ暦のサポート、bali.rsc の変更 west.rsc でイギリスの年初の移行を13世紀末から12世紀半ばに変更 scroll.rsc でバーバラ・スィーリングのユダヤ太陽暦を追加 greek.rsc で古代ギリシア風の暦を追加 aztec.rsc で16世紀初頭のアステカ暦を追加 pope.rsc の改良(月日を記述、綴をラテン語風に変更) indo.bat で日の出時刻を指定するため','を'#'で代用出来るようにした 計算ターゲット 24番に「太陽と月の黄経の和」を追加した(ヨーガ対応) インド系の暦で満・数の別を表示するようにした イラン暦の記述の変更もれ、Hijra の綴の不統一を修正(west.rscを除く) (s.rscにマイナーな太陽暦を登録) saku.batを追加(主に平朔暦法での朔の日付を計算するバッチファイル) sori.rsc に羽田孜を追加 1994.09.02 V2.081 nipe.exe を使用すると月の位置が不正になるバグを修正 roma.rsc の月名をラテン語にし、ローマ暦Iの使用年次を一年くりさげ java.rsc のジャワ暦の一日の始まりを前日の午後6時に変更 (ジャワ注は変更せず) bali.rsc のシャカ暦の月番号をKadasa=10月と表示するよう変更 lombok.rsc で bali.rsc より1ヶ月早く年が変わるパターンを用意 sori.rsc に村山富市を追加(ああ、毎回だ!) E-Mail アドレスの表記を変更 ==(9)= 著作権等について ====== 1) 本プログラムの著作権は私(suchowan@日経mix, 須賀隆)に属します。 2) 本プログラムは BORLAND C++ V3.0 で作成しました。 3) 標準版と機能限定版はPC9801DA2とJ3100SL081VWで動作を確認しています。 4) 98版はPC9801DA2で動作を確認しています。 5) IBM版はJ3100SL081VWで動作を確認しています。 6) 他BBSへ転載する場合は私(suchowan)までメールで連絡願います。 ファイル構成を変更しない場合は、事後でもかまいません。 ファイル構成を変更する場合は、必ず事前にご相談ください。 7) 他BBSへ転載する場合は+オプション等で内容を変更しないでください。 8) 本プログラムの使用に伴う損害については、責任を負いません。 『Vz Editor』は、株式会社ビレッジセンターの商品名です。 『地図をください・基本セット』は株式会社ラッセル社の商品名です。 (最近「基本セット」という言葉がとれて ASCII社に移ったようです) 『MS-DOS』は、米国 Microsoft社の商標です。 電子メールアドレス suchowan@mix.or.jp ZKF09755@pcvan.or.jp SGB02104@niftyserve.or.jp 76661.2104@compuserve.com ====(10)= 参考文献(敬称略) ======== ・when.doc で引用したもの [ 1] 安楽庵策伝 醒睡笑 平凡社・東洋文庫31(1964) [ 2] 暦の会編       暦の百科事典    新人物往来社(1986) [ 3] 広瀬秀雄       暦(日本史小百科)    近藤出版社(1978) 東京堂出版(1994) [ 4] 内田正男       日本暦日原典(第4版) 雄山閣(1975,1992) [ 5] 湯浅吉美編 日本暦日便覧    汲古書院(1988) [ 6] 三省堂編修所編    コンサイス世界年表  三省堂(1976) [ 7] 木場明志 本能寺の変と天正10年の暦 雑誌『文明のクロスロー ド』第45号(1993)pp.29-37 [ 8] 内田正男       日本書紀暦日原典 雄山閣(1978,1994) [ 9] Coyne, G.V. ed. GREGORIAN REFORM VATICAN CITY, PONTIFICA Hoskin, M.A. OF THE CALENDAR ACADEMIA SCIENTIARUM Pedersen, O. (1983) [10] 数理科学1974-01 特集・暦        ダイアモンド社(1974-01) [11] Cheney, C. R. A Handbook of Dates for London(1945) Students of English History [12] Tsybulsky, V. V. Calendars of Middle East <>Publishing House Countries Conversion Tables Central Department of and Explanatory Notes Oriental Literature Moscow(1979) [13] 陳遵女爲 中國天文學史 明文書局(1988) ---- <- 一字 第5冊「暦法・暦書」 [14] 渡邊敏夫       暦のすべて 雄山閣(1980) (前著の改題改版)   暦入門 雄山閣(1994) [15] Attali, Jacque 時間の歴史 原書房(1986) [16] US Naval Obs. EXPLANATARY SUPPLEMENT to UNIVERSITY SCIENCE BOOKS the ASTRONOMICAL ALMANAC (1992) [17] Ginzel, F.K. Handbuch der mathematischen Leipzig(1914) und techniscen Chronologie [18] 歴史学研究会編 世界史年表 岩波書店(1994) [19] 松田毅一・E・ヨリッセン フロイスの日本覚書 中央公論社(1983) [20] 江口朴郎編 ロシア革命の研究 中央公論社(1968) [21] 小島麗逸・大岩川嫩編 「こよみ」と「くらし」    アジア経済研究所(1987) [22] 月刊『よむ』1993-01 特集・暦をよむ     岩波書店(1993-01) [23] 佐藤政次       暦学史大全     駿河台出版社(1968) [24] 岡田芳朗 アジアの暦 大修館書店『しにか』連載 (1990〜1991) [25] Taqizadeh S. H. OLD IRANIAN CALENDARS London(1938) [26] Hartner, Willy Oriens-Occidens II Georg Olms Verlag Hildesheim, Zuerich, New York(1984) [27] 矢野道雄 占星術師たちのインド     中公新書(1992) [28] 矢野道雄 アル・ビールーニー『星学入  西南アジア研究 門』にみられるインド No.38 pp.56-71(1993) [29] Debevoise, N. C. パルティアの歴史   山川出版社(1993) [30] Resowidjojo, S. ed. Almanak gampang, 1900-2000 Djakarta(1959) [31] IWAN GAYO編 BUKU PINTAR UPAYA WAGRA NEGARA(1991) [32] Stibbe, D. G. ed. ENCYCLOPAEDIE van Vol.5, pp.401-415 Spat, C. NEDERLANDSCH-INDIE" 's-Gravenhage: Martinus Nijhoff(1927) [33] Wiyoto, ed. Almanak Dasawarsa PN Balai Pustaka 1981-1990 Jakarta(1982) [34] 永田久 バリの暦 法政大学教養部紀要 No.52 pp.7-44(1985-01) [35] 五十嵐忠孝 バリのこよみ・考 京都大学東南アジア研究センター 「東南アジアフォーラム」資料 (1994.2.19) [36] 五十嵐忠孝 バリのこよみ・考 東南アジア学フォーラム FORUM通信 No.11 (1994.03) [37] 方詩銘・方小芬編著 中国史暦日和中西暦日対照表  上海辞書出版社(1987) [38] 郭廷以 太平天国暦法考訂 商務印書館(1963,原1937) [39] 藪内清 増補改訂中国の天文暦法  平凡社(1990) [40] 王煥春等編 公農回イ泰彝蔵佛暦和儒略日対照表 科学出版社(1991) [41] 黄明信・陳久金他  蔵暦的原理与実践 民族出版社(1987) [42] 山口瑞鳳 チベット      東京大学出版会(1988) [43] 大橋由紀夫 チベット暦書『ケーパ・ガチェ 数学史研究 Vol.101 ー』(14世紀)における太陽、 pp.20-49(1984-4〜6) 月、惑星の運行 [44] 月刊『言語』1991-12 特集・暦の記号学    大修館書店(1991-12) [45] Eade, J. C. Southeast Asian Ephemeris: Cornell Univ. Press Solar and Planetary Ithaca(1989) Positions, A.D.638-2000 [46] Phetsarath, T. M. U. The Laotian Calendar 次文献pp.97-125 [47] Rene de Berval Ed. Kingdom of Laos France-Asie Saigon(1959) [48] Irwin, A. M. B. The Burmese & Arakanese Rangoon(1909) Calendars [49] The Centre for East THE DYNASTIC CHRONICLES, The Toyo Bunko Asian Cultural Studies BANGKOK ERA Tokyo(1965) [50] 中国社会科学院    中国古代天文文物論集 文物出版社(1989) 考古学研究所編 [51] Mikalson, J. D. The Sacred and Civil Calendar of the Athenian Year Princeton Univ Press (1975) [52] Meritt, B. D. The Athenian Year Berkley and Los Angeles, California(1961) [53] Tolkien, J.R.R. 指輪物語 評論社(1977) [54] Verdet, Jean-Pierre 天文不思議集 創元社(1992) [55] 岡田芳郎・阿久根末忠 現代こよみ読み解き事典 柏書房(1993) [56] Coe, Michael D.   マヤ          学生社(1975) [57] 八杉佳穂       マヤ文字を解く     中公新書(1982) [58] 八杉佳穂       マヤ興亡 福武書店(1990,1991) [59] 植田覚        マヤ・アステカの文字と文化  大修館書店『言語』連載 Vol.11 No.6 pp.122-125 (1982-06) [60] Satterthwaite,Linton Calendrics of the Maya Handbook of Middle Lowland American Indians. Vol.3,Austin,p.628- (1965) [61] Kelley, David H. Astronomical Identities of Miami(1980) Mesoamerican Gods. [62] 小池佑二 アステカ暦を西暦に 東海大学文明研究所紀要 換算する 第7号 pp.17-31(1987) [63] 長沢工        天体の位置計算     地人書館(1981,1985) [64] 海上保安庁水路部編 天体位置表 海上保安庁(1992) [65] 暦計算研究会編    こよみ便利帳,新こよみ便利帳 恒星社厚生閣(1983,1991) [66] 楊家駱        中國天文暦法史料 鼎文書局(1978) [67] 渡邊敏夫       日本の暦 雄山閣(1976) [69] 古川麒一郎他     日本暦日総覧     本の友社(1992) [70] 江崎誠致       名人碁所        新潮社(1982) [71] Calendar Reform Report of the Calendar New Delhi(1955) Committee Reform Committee [72] 矢野道雄編      インド天文学・数学集     朝日出版社(1980) [73] 矢野道雄 インドの暦日について     西南アジア研究 No.35 pp.1-21(1991) [74] Le=Guin, Ursula K. 闇の左手 早川書房(1972) [75] 天文年鑑編集委員会編 天文年鑑 1994年版 誠文堂新光社(1993) [76] Thiering, Barbara イエスのミステリー NHK出版(1973) [77] Eiseman, Fred B. BALI: Sekala and Niskala 私家版 Denpasar(1985) [78] Zuidema R. T. Towards a General Andean Calendars in Mesoamerica Star Calendar in Ancient and Peru Native American Peru Computations of Time BAR International Series (1983) [79] Ecsedy, I. et al. Antares years World Archaeoastronomy: in ancient China Selected Papers from the 2nd Oxford International Conference on Archaeo- astronomy Held at Merida (1986) pp.183-185 Cambridge Univ. Press [80] 成家徹郎 武王克商的年代 第二次西周史学術討論会 発表論文(1992-10) [81] 青山吉信       アーサー伝説      岩波書店(1985) [82] 井上圭典・鈴木邦裕 天体位置略算式の解説   海文堂(1991) ・when.doc で引用していないもの(一部 china.doc や *.rsc、*.bat で引用) [83] 高木貞治       初等整数論講義     共立出版(1931,1971) [84] 斉藤国治 古天文学 恒星社厚生閣(1989) [85] 長谷川一郎 天体軌道論 改訂版 〃 (1983,1986) [86] 青木信仰       時と暦         東京大学出版会(1982) [87] 山崎昭・久保良雄   暦の科学        講談社ブルーバックス (1984) [88] 藪内清        歴史はいつ始まったか  中公新書(1980) [89] 藪内清編       中国天文学・数学集   朝日出版社(1980) [90] 平勢隆郎 中国古代の皇帝と暦 雑誌『文明のクロスロー -- <- 左上の部分は正しくは「生」 ド』第45号(1993)pp.9-16 [91] 汪曰木貞 歴代長術輯要 台湾中華書局(原1878) ---- <- 一字 [92] 黄一農 中国史暦表朔閏訂正挙隅 漢學研究第10巻第2期 pp.279-306(1992.12) [93] 高山博 中世地中海世界と 東京大学出版会(1993) シチリア王国 [94] Denzinger カトリック教会文書資料集 エンデルレ書店 Schoenmetzer (1974,改1982) [95] 大林太良他編 文化人類学事典 弘文堂(1987) [96] Hastings J. ed. Encyclopaedia of Religion Vol.III pp.61L-141L and Ethics (1963) Edinburgh [97] Frank, Bernard 方忌みと方違え 岩波書店(原1958,訳1989) [98] 阿部泰山 萬年暦 初版,改訂版 京都書院(1954,1979) [99] 京都大学文学部    東洋史辞典 東京創元社(1961,1967) 東洋史研究室編 [100]小林信明編      新選漢和辞典         小学館(1963,1966) [101]武田幸男       朝鮮史         山川出版社(1985) [102]一然         三国遺事        六興出版(1980) [103]司馬遷        史記 中華書局(1959) [104]班固 漢書 〃 (1962) [105]陳寿 三國志 〃 (1959) [106]范曄 後漢書 〃 (1965) [107]房玄齢・李淳風 晋書 〃 (1974) [108]欧陽修 新五代史 〃 (1974) [109]司馬光        資治通鑑 宏業書局(1985) [110]畢シ元        続資治通鑑 〃 (1974) [111]陳舜臣        中国の歴史(六) 講談社文庫(1991) [112]李兆洛        歴代紀元編 台湾中華書局(1979) [113]方詩銘編 中国歴史紀年表 上海辞書出版社(1980) [114]Lishk, S. S. Jaina Astronomy Vidya Sagara Public. Delhi(1987) [115]Davis, Richard The Northern Thai Calendar Anthropos 71.1976 and Its Uses pp.3-32 [116]Pingree, David History of Mathematical Dictionary of Scientific Astronomy in India Biography Vol.15 Suppl.I pp.533-633 ・未見ながら参考になると思われるもの(ここに書いて置けば情報提供者があるかも) [117]Cappelli, A. Cronologia, Cronografia Milan(1930) e Calendario perpetuo [118]Grotefend, H. and Taschenbuch der Zeitrechnung Hannover(1941) Grotefend, O. des deutschen Mittelalters und der Neuzeit [119]*Khare, G. S. Khare Jantri athava Pune, India(1923) Shivakalin Sanpurna Shakavali * ダイアクリティカルマーク(文字に付加する'-'、'.'の類)を省略しました。 各文献の紹介者を以下に列挙します(()付きは存在を前から知っていたが調べて いなかったもの、手にはいらなかったもの) 五十嵐忠孝氏 (17), 32 , 33 , 36 , 45 , 46 , 47 , 48, 77 , 79 ,(96), 114-116 矢野道雄氏 7 , 25 , 28 , 35 ,(71), 73 , 90 花關索氏 9 , 13 , 15 , 20 ,(38) (JBC01341@niftyserve.or.jp) 川原秀城氏 26 , 43 ,(91), 92 岡田芳朗氏 22 , 52 坂井正人氏 62 , 78 独楽氏 93 (PEE02747@niftyserve.or.jp) 永田久氏 34 成家徹郎氏 80 特に五十嵐忠孝氏には文献[32,33,36,45-48,77,79,114-116]を紹介していただき ました。さらに、未見であった文献[17]のグレゴリオ暦の部分のコピーをいただい た上、文献[33]をまるごと寄贈してくださいました。また、本ドキュメントでの文 献[32](オランダ語)に関する言及は私信よりの引用です。重ね重ねご協力ありが とうございます。 また、massangeana氏(massange@mix.or.jp)、矢野道雄氏、富田徹男氏(GCC02224 @niftyserve.or.jp)、ykawazoe氏(@mix.or.jp)、nuts氏(@mix.or.jp)、西沢利男氏、 点子さん(PDE01661@niftyserve.or.jp)、高崎一郎(いちらう)氏(KVJ03149@pcvan.or. jp)、かんち氏(KGG00557@niftyserve.or.jp)、大橋由紀夫氏にはプログラム・デー タやドキュメントの上でいろいろ貴重な助言・指摘をいただきました。 ご協力いただいた皆様にこの場でお礼を申し上げます。