中国においては伝統的に太陰太陽暦が用いられてきました。太陰太陽暦とは、 読んで字のごとく「月」は太陰(=月)の運動を基準にし、「年」は太陽の運 動(=本当は地球の方が動いている)を基準にする暦法です。我々が現在用い ている太陽暦では1年は12か月ですが、
1太陽年(季節が巡る周期) = 365.2422 日 ・・・・ (1) 1朔望月(月が満ち欠けする周期)= 29.530589日 ・・・・ (2)
であり12朔望月は1太陽年よりも11日弱短いため、約3年に1度1年を13か月 とし、季節を調整します。
余分な月(閏月)をいつ挿入するかを決定する判断材料となるのが二十四気です。 二十四気は太陽の軌道上の位置により、下表の様に定義されます。偶数番目の ものを中気、奇数番目のものを節気といいます。中国では、特定の中気が特定の 月に含まれるように閏月を挿入するという方法がとられてきました(戊寅暦、 麟徳暦(=儀鳳暦)では啓蟄と雨水が入れ替わります(中國天文暦法史料[66])。
春 | 夏 | 秋 | 冬 | ||||
1:立春 | 315゜ | 7:立夏 | 45゜ | 13:立秋 | 135゜ | 19:立冬 | 225゜ |
2:雨水 | 330゜ | 8:小満 | 60゜ | 14:処暑 | 150゜ | 20:小雪 | 240゜ |
3:啓蟄 | 345゜ | 9:芒種 | 75゜ | 15:白露 | 165゜ | 21:大雪 | 255゜ |
4:春分 | 0゜ | 10:夏至 | 90゜ | 16:秋分 | 180゜ | 22:冬至 | 270゜ |
5:清明 | 15゜ | 11:小暑 | 105゜ | 17:寒露 | 195゜ | 23:小寒 | 285゜ |
6:穀雨 | 30゜ | 12:大暑 | 120゜ | 18:霜降 | 210゜ | 24:大寒 | 300゜ |
中国の古代に使用された1年を365.25日、19年を235か月とする太陰太陽暦です。
(1)(2)式より 19太陽年 = 6939.6018日 ・・・・ (3) 235朔望月 = 6939.6884日 ・・・・ (4)
となり、19年に(235-19×12=)7回閏月を挿入すると都合が良いことがわかります (なぜこんな倍数が簡単に見つかるか興味のある方は、初等整数論講義[83] を読んでください-また近似分数を表示するには
whenhv 365.2422 29.530589 (ret)
などとします)。
19太陽年=235朔望月の周期をメトン周期、この周期の4倍をカリポス周期といいます。
四分暦とは、正確に、
1太陽年 = 365.25日 19太陽年 = 235朔望月 (故に1朔望月 = 29日499/940)
が成立しているものとして計算される太陰太陽暦です。
従って、四分暦では76年を周期として同じ日付パターンが繰り返されます (言い替えると、ユリウス暦と四分暦の対照表は76年分あれば十分)。
中国の戦国時代から秦・漢の初期にかけて、6種類の四分暦が使用されて いたと言われています (要するに各国が勝手な暦を使っていたということでしょう)。
暦法 | 資料 | 元期 | 干支 | 節気 | 年-365 | 月-29 |
黄帝暦 | 文献[50] | +1228331正子朔 | 甲子 | 冬至 | 1/4 | 499/940 |
顓頊暦 | 文献[50] | +1171396正午朔 | 己巳 | 立春 | 1/4 | 499/940 |
夏暦 | 文献[50] | +1328411正子朔 | 甲子 | 冬至 | 1/4 | 499/940 |
殷暦 | 文献[50] | +1149071正子朔 | 甲子 | 冬至 | 1/4 | 499/940 |
周暦 | 文献[50] | +1128251正子朔 | 甲子 | 冬至 | 1/4 | 499/940 |
魯暦 | 文献[50] | +1048991正子朔 | 甲子 | 冬至 | 1/4 | 499/940 |
秦から漢の初期にかけて使用されていた
秦・前漢の顓頊暦では原則として冬至が11月に(または雨水が1月に)固定され、固定月 から翌年の固定月までが13ヶ月なる場合その間に閏月を挿入します。挿入する位置は年末 です。秦・漢の初期は年初が10月であったため、後9月が挿入されます。
本プログラムでは、確定的な暦法を提供することをあきらめ、カスタマイズ機能を利用して、 ユーザがパラメータを調整できるようにしました。例えばwhen.rsc 中の
+-+-+- 表示範囲の下限及び上限(例はプラスマイナス無限大の場合) | | +- 四分暦法を示す(111035なら4カリポス周期を1日短縮) | | | +-----+- 元期はユリウス通日1171396の12時 | | | | | quarter5: -,+,2, 1171396, 12, 1041285, 12, -1, 9 # 5: 前漢顓頊暦 | | | | | +- Q# の # | | | +- 9月の後に閏月を挿入 | | +- 11月を固定 | +- 12ヶ月を単位として閏月を計算 +- 元期と固定する中気の差を1/940時間 単位で指定。この場合は冬至から立春 (0時)までの45度+同日12時までの 半日を意味する。 1度 = 22889, 1日 = 22560
を変えることによって、顓頊暦をカスタマイズすることができます。
平朔平気(平気は恒気または常気という方が一般的か)法は、月の平均黄経と 太陽の平均黄経をもとに朔と中気を計算し、すべての中気を対応する月に固 定する暦法です(平均黄経などの用語は現代天文学の用語ですから、厳密な 概念定義としては「ずれ」があります。詳しくは こちら を参照してください)。
春 | 夏 | 秋 | 冬 | ||||
1月中 | 雨水 | 4月中 | 小満 | 7月中 | 処暑 | 10月中 | 小雪 |
2月中 | 春分 | 5月中 | 夏至 | 8月中 | 秋分 | 11月中 | 冬至 |
3月中 | 穀雨 | 6月中 | 大暑 | 9月中 | 霜降 | 12月中 | 大寒 |
中気の無い月を閏月にし、直前の月と同じ月番号に閏字をつけてあらわします (v2.04までの記述では、四分暦では置閏判定で朔の日の区切りを考慮しない と書いてありましたが、これは私の文献誤読によるものでしたので、同記述を 削除します-massangeanaさんのご教示による)。
平朔平気法は、前漢の太初暦から隋の大業暦まで使用されました。次表に、 中国で実際に使用された暦法のパラメータを示します。このうち玄始暦は、 律暦志に元期が記載されていない為、文献[1]から逆算して元期を推定しま した。
この元期を元にした c1$f.rsc による玄始暦の計算値は、文献[37]のデータ と閏月の位置が6箇所ずれており、むしろ汪曰楨『古今推歩諸術攷』巻上,22葉、 等に一致します。これのもとネタは『開元占経』であろうとのことです(-これも massangeanaさんのご教示による)。
文献[37]では閏月の間隔が35ヶ月になることがあり、人為的変更を考慮した 結果であろうかとも推定されますが詳細は不明です。資治通鑑の暦日は計算値の方 によく適合します(これは資治通鑑プロジェクトの一貫として行われた計算によって 元の記録を置き換えたためと思われ、ある意味であたりまえのこと)。
暦法 | 資料 | 元期 | 干支 | 節気 | 年-365 | 月-29 |
太初暦 | 漢書 | +1683431正子朔 | 甲子 | 冬至 | 385/ 1539 | 43/ 81 |
四分暦 | 後漢書 | +1662611正子朔 | 甲子 | 冬至 | 1/ 4 | 499/ 940 |
乾象暦 | 晋書 | -898129正子朔 | 甲子 | 冬至 | 145/ 589 | 773/ 1457 |
景初暦 | 晋書 | +330191正子朔 | 甲子 | 冬至 | 455/ 1843 | 2419/ 4559 |
三紀暦 | 晋書 | -28760989正子朔 | 甲子 | 冬至 | 605/ 2451 | 3217/ 6063 |
玄始暦 | 魏書 | -20568349正子朔 | 甲子 | 冬至 | 1759/ 7200 | 47251/ 89052 |
元嘉暦 | 宋書 | -200089正子朔 | 甲子 | 雨水 | 75/ 304 | 399/ 752 |
大明暦 | 宋書 | -17080189正子朔 | 甲子 | 冬至 | 9589/ 39491 | 2090/ 3939 |
正光暦 | 魏書 | -59357929正子朔 | 甲子 | 冬至 | 1477/ 6060 | 39769/ 74952 |
興和暦 | 魏書 | -105462049正子朔 | 甲子 | 冬至 | 4117/ 16860 | 110647/208530 |
天保暦 | 隋書 | -38447089正子朔 | 甲子 | 冬至 | 5787/ 23660 | 155272/292635 |
天和暦 | 隋書 | -317950249正子朔 | 甲子 | 冬至 | 5731/ 23460 | 153991/290160 |
大象暦 | 隋書 | -13244449正子朔 | 甲子 | 冬至 | 3167/ 12992 | 28422/ 53563 |
開皇暦 | 隋書 | -1506155749正子朔 | 甲子 | 冬至 | 25063/102960 | 96529/181920 |
大業暦 | 隋書 | -519493909正子朔 | 甲子 | 冬至 | 10363/ 42640 | 607/ 1144 |
麟徳暦* | 旧唐書 | -96608689正子朔 | 甲子 | 冬至 | 328/ 1340 | 711/ 1340 |
* 日本書紀において儀鳳暦という呼び名で平朔で使用されている
定朔平気法は、月の視黄経と太陽の視黄経をもとに朔を計算し、太陽の平均黄経をもとに 中気を計算し、すべての中気を対応する月に固定する暦法です。
以後の計算は平朔平気法と同様です。
定朔平気法は、唐の戊寅暦(一時期平朔で使用)から明の大統暦(実質的に元の授時暦と ほとんど同じ)まで使用されました。
月の運動は一様でないため、定朔平気法では大の月(30日まである月)が4ヶ月続くことが あります。また、朔が午後6時以降の場合翌日を1日(ついたち)にするという進朔が唐 から宋にかけて行われていたようです。日本で八百年以上も用いられた宣明暦も唐代の暦法 であるため原則として進朔が行われていました。
朔閏表一覧の注にも書いておりますように、五代十国時代には暦法不明の時期があります。 文献[37]にはこの時期の暦日も記載されていますが、精度は前後の時期よりもかなり 落ちるのではないかと推定されます。
定朔定気法は月の視黄経と太陽の視黄経をもとに朔と中気を計算し、いくつかの中気を 対応する月に固定する暦法です。
定朔定気法は、清の時憲暦で採用され、太陰太陽暦の廃止まで使用されました。
また日本でも天保暦で採用され、いわゆる「旧暦」も定朔定気法で計算されています。
地球が近日点を通過する1月頃は、太陽の動きが速いため、中気と中気の間隔が朔と朔の 間隔よりも短くなります。このため平気法の様に単純に月番号を決めることができず、 置閏規則は複雑になります。
中国では、まず、康煕甲子元法上(増補改訂中国の天文暦法[39]pp.283, 中國天文暦法史料[66]参照)により、
1) 冬至を含む月を11月とする。 2) 次の冬至まで13ヶ月ある場合、中気を含まない最初の月を閏月とする。
とされ、さらに嘉慶年間に、
1) 冬至を含む月を11月、春分を含む月を2月、夏至を含む月を5月、秋分を 含む月を8月とする。 2) 閏月は中気を含まない月に置く、しかし中気を含まなくても必ず閏月にし なければならない訳ではない。
と改められました。日本の天保暦も後者に基づいています(この点については疑問を 持っています(天保暦置閏法の謎参照))。
今仮に、前者を中国流、後者を日本流と言うものとすると、明らかに中国流 の方が矛盾のない規定です。
日本流では二至二分間の月数が足りない場合(1699-1700年-表A、2033年-表B)や、 月数が余っても中気のない月を複数を含む場合(2033-34年-表B)の扱いがはっきり しません(従って、本プログラムの計算法には、私の独断がはいっています)。
表A | |
1700年年初付近の朔 | 1700年年初付近の中気 |
1 Nov 21 23:52 | |
Nov 22 8:31 小雪 | |
2 Dec 21 17:54 | Dec 21 20:47 冬至 |
冬至を含む月 | |
3 Jan 20 13:20 | Jan 20 7:24 大寒 |
? | Feb 18 22:35 雨水 |
4 Feb 19 8:33 | |
春分を含む月 | Mar 20 23:25 春分 |
5 Mar 21 1:46 | |
6 Apr 19 15:51 | |
Apr 20 12:39 穀雨 | |
7 May 19 2:45 |
表B | |
2034年年初付近の朔 | 2034年年初付近の中気 |
1 Jul 26 17:12 | |
Aug 23 4:02 処暑 | |
2 Aug 25 6:39 | |
閏7月? | |
3 Sep 23 22:39 | Sep 23 1:51 秋分 |
秋分を含む月 | |
4 Oct 23 16:28 | Oct 23 11:27 霜降 |
? | |
5 Nov 22 10:38 | Nov 22 9:15 小雪 |
冬至を含む月 | Dec 21 22:44 冬至 |
6 Dec 22 3:46 | |
閏11月? | |
7 Jan 20 19:01 | Jan 20 9:26 大寒 |
Feb 18 23:29 雨水 | |
8 Feb 19 8:10 | |
閏1月? | |
9 Mar 20 19:14 | Mar 20 22:16 春分 |
春分を含む月 | |
10 Apr 19 4:25 | |
Apr 20 9:03 穀雨 | |
11 May 18 12:12 |
本プログラムでは、日本流中国流いずれにも対応するため、カスタマイズ 機能を利用して、ユーザがパラメータを調整できるようにしました。
whenhv.rsc の
# 閏月の計算単位(月数) 中気を固定する月 その中気の太陽黄経 #leap: 3, 2, 0 # ↓ ↓ ↓ leap: 12, 11, 270
を参考にしてください。whenhv.rsc を + オプションで指定すれば、中国流 の太陰太陽暦も計算できます(地方時を SET TZ=-8 とすることを忘れないで)。