日本の暦と節気
~ 月と木星と太陽 ~
2023-08-23 作成 福島
Nav: TOP > hist > japancalendar
[ TIPS | TOYS | OTAKU | LINK | MOVIE | CGI | AvTitle | ConfuTerm | HIST | AnSt | Asob ]

言葉にするまでもなく、暦 (こよみ、れき、カレンダー) は重要です。

誰かと予定を合わせたり、計画を練ったり、意思の疎通を測ったりする、時間の物差しです。
縁起を知ったり、占ったり、流行やイベントの基になったりもします。

日本にはかつて独自文化がありましたが、先進的な技術には疎かったりします。
特に時間・時刻に関しては独自文化でなく、他国の知識を模倣・加工して使いやすくしているため、様々な思想や思惑(おもわく)が混在しています。

ここでは、日本人が使っている暦や節気をまとめます。


皇暦 - 日本

皇暦(こうれき)とは、日本独自の*1紀年法(きねんほう)で、元年を西暦に当てはめると紀元前 660 年に該当します。(例: 西暦 2000 年 = 皇暦 2660 年)
このとき神武天皇(じんむてんのう)の即位をもって日本が建国されました。
ほかの呼び方として皇紀(こうき)紀元(きげん)日紀(にっき)などがありますが、ここでは西暦(せいれき)に合わせて皇暦(こうれき)と呼ぶことにします。

皇暦は紀元前 660 年に始まった (ことになっている) のですが、制定されたのは明治 5 年末 (西暦 1872 年、皇暦 2532 年) で、
明治 6 年に改暦したグレゴリオ暦を採用しています。

日本は西暦 554 年に中国から伝わった太陰太陽暦である元嘉暦(げんかれき(を採用しており、それ以前に使用していた暦は不明です。
神武天皇は庚午(かのえうま)庚辰(かのえたつ)日に誕生した (日本書紀、本朝皇胤紹運録) とありますが、これが記されたのは西暦 720 年*2以降です。
皇暦はグレゴリオ暦によって計算されますが、グレゴリオ暦が作られたのは西暦 1582 年です。

このため、皇暦に該当された神武天皇が実際にどのような日付の数え方をしていたのか判明していません。
(そもそも、年や日を数えていたかも不明)

改暦の布告が明治 5 年 11 月 9 日で、皇暦の制定が 11 月 15 日。グレゴリオ暦の採用が 12 月 3 日 (= 明治 6 年 1 月 1 日)。
となっており、この期間は 1 ヵ月もなく改暦の計画にはかなり無理があったことが窺えます。

また、後述のように紀元前をグレゴリオ暦で計算すると誤差が解消されないという問題があります。

*1「日本独自の」と書いていますが、実は「西暦」も「キリスト教式の」という意味です。
便利だから使っているだけで、キリスト教を意識して年を数えている人は少ないと思います。

*2日本はこのとき儀鳳暦(ぎほうれき) (太陰太陽暦) を採用しています。


一年が 12 ヵ月なのは月の公転を数えた - 古代メソポタミアとバビロニア (イラク)

地球の公転軌道が発見される前の遥か昔、地球上の人々はの満ち欠けを見て生活していました。

季節は太陽に対する地球の位置によって変化するので、日の出や日の入りの位置を観測するほうが正確ですが、
目印となる目標物が居住地により異なり「あの山の左側」や「あの谷の間」と言うしかなく統一ができません。
月の満ち欠けであれば、見える位置ならどこから見ても同じ形に見えます。

月の見かけ上の公転周期 (元の位置に戻る) は約 29.53 日なので、春を迎えてから新月(しんげつ)*3満月(まんげつ)*4のどちらか一方を 12 回数えると、
また春が来て一年が経過したことになります。これを純粋太陰暦(じゅんすいたいいんれき)と呼びます。
紀元前 3000 年頃に古代メソポタミアで作られたと言われています。

29.53 日を 12 回繰り返すと約 354.36 日となり、実際の一年 (約 365.2422 日) より 11 日少ないため、3 年後には 1 ヵ月分不足します。(新月 1 回分)
これを修正して 3 年に一度、一年を 13 ヵ月とした暦法を「太陰太陽暦(たいいんたいようれき)」と呼びます。
紀元前 2000 年頃にバビロニアで使われていたそうですが、いつからかはっきりしません。
(古代メソポタミアとバビロニアは、ほぼ同じ地域です)

純粋太陰暦、太陰太陽暦ともに今はもう使われていません。

*3新月: 太陽の方向に月がある状態。月の影だけを見るため暗く見える。夜に見ることはできない。🌏→◐ ((🌞)) 日食があるとしたらこのとき。
*4満月: 太陽と逆の方向に月がある状態。太陽光が当たり明るく見える。昼に見ることはできない。◐←🌏 ((🌞)) 月食があるとしたらこのとき。


グレゴリオ暦とうるう年 - 古代ローマとバチカン市国

現代では「グレゴリオ暦」が様々な国で使われています。一年の月・日を統一するために考案されたルールです。

ユリウス暦にあった誤差をさらに小さくするため、西暦 1582 年に当時のローマ教皇グレゴリウス13世が行使したのがグレゴリオ暦です。
太陽を一周する間に、地球が何回転するかを意味しているのはユリウス暦と同じです。
月の数が 12 ヵ月で月の満ち欠けを考慮しないのもユリウス暦と同じです。

ユリウス暦では 4 年を 1461 日 (365 × 4 +うるう日) としていましたが、実際には 1460.9688 日 (365.2422 × 4) なので、
4 年で約 0.0312 日の誤差がありました (0.0312 ≒ 0.749時間)。
これをグレゴリオ暦では 400 年で約 0.12 日の誤差にしています (4 年あたり 0.0012 ≒ 0.0288時間)。
つまり、グレゴリオ暦は 400 年間をひと塊にして考えます。

*6うるう年のキャンセルのキャンセルのキャンセル (= うるう年にしない) が必要なのは西暦 3200 年と紀元前 1 年で、
このとき 1 日を越えない最大の誤差 0.96 日になるけど、グレゴリオ暦には規定がない。
西暦 3199 年 (皇暦 3859 年) までは大丈夫そうだけど、紀元前をグレゴリオ暦で計算してはいけないはず。
Python のプログラムにするとこんな感じ (Python は負数のモジュロもちゃんと演算してくれます)

def isLeap(y):
  """うるう年の判定 (y: AD1 が 1 なので BC1 は 0 とする)"""
  leap = False
  if y %    4 == 0: leap = True
  if y %  100 == 0: leap = False
  if y %  400 == 0: leap = True
  if y % 3200 == 0: leap = False  # <- 現行はこの条件が不足している
  return leap
皇暦は元年が西暦の紀元前 660 年なので (制定した 1872 年当時もそうだが、現行の) グレゴリオ暦で計算するのはおかしい。
西洋のものなら何でもよい」と考えていた明治政府 (まだ内閣は存在していなかった) と、そのご機嫌取りである御用学者子細を無視して皇暦を導入したらしい(いいかげんだった)
 → グレゴリオ暦とうるう年 (付録) に続く。


2 月末にうるう日 - 古代ローマ

古代ローマでは春 (現代の 3 月) を年初と考えていたので 2 月が年末でした。
そもそも暦は農耕の日程・予定を基本としているため、春を基点にするのは理にかなっています。

うるう日やうるう月を入れるなら年末に追加すると都合が良かった。
···はずが、いつの間にか基点がズレてしまいました。
その内容 (かなり省略したけどまだ長い)
紀元前 753 年にローマという国が作られましたが、この国を作った王がロームルスです。
ロームルスはロムルス暦 (紀元前 753 年) を制定しました。
ロムルス暦は古代ギリシア暦を元にしたそうですが、古代ギリシアは戦争によって領土の変化が激しかったうえ、
暦が地域ごとに異なっていたため、どの暦を参考にしたかはっきりしません。

ロムルス暦は、月の数え方を「10 ヵ月 +(休み)」としていて、春に始まり冬に終わる暦法でした。
太陰暦に似ていますが、月の運行ではなく日数を基本としています。(1 ヵ月は 30 または 31 日間)
+(休み) は約 60 日間もありますがこれを数に入れず、王の宣言により新年が始まるという、なんともざっくりとした暦です。
ロムルス暦
ロームルス
「今日から新年だ」
12345678910+(休み)
··
(便宜的に 1 2 ·· 10 を使用していますが、実際は名前で呼ばれます)
現代に当てはめると、1→3月、10→12月、+(休み)→1~2月、となります。



王ロームルスが元老院によって暗殺され、その数年後に即位した二代目の王ヌマによってヌマ暦 (紀元前 713 年) が作られました。

ヌマ暦は、ロムルス暦で +(休み) としていた部分を 11 12 (13) という 3 つの月に割り当て、
月の数え方を「12 ヵ月 + 1 ヵ月」としました。
ヌマ暦 (新年の宣言は必要ありません)
新年123456789101112(13)
··
(便宜的に 1 2 ·· 13 を使用していますが、実際は名前で呼ばれます)
現代に当てはめると、1→3月、10→12月、11→1月、12→2月、となります。
(13) はうるう月で、12 を年末と考え、2 年に 1 回年末に 1 ヵ月を追加します*7
春に始まり冬に終わるのはロムルス暦と同じです。
日数を基本とするのも同じですが、1 ヵ月はロムルス暦と異なり、29 または 31 日間 (30 日間の月が無い) です。

その後、紀元前 153 年になぜか 11 が一年の始まりとなり、うるう月の追加位置は変わらないものの、
11 12 (13) 1 2 3 4 5 6 7 8 9 10」と数えるようになってしまいました。(相変わらず 12 が年末という認識)
(13) は有ったり無かったり、いい加減にしていたらしいので、政治が適当だったことが窺えます。
末期のヌマ暦
12345678910新年1112(13)
··
ヌマ暦はユリウス暦に変わるまで続きます。



紀元前 45 年にシーザーが太陽暦であるユリウス暦を実施しました*8
このときから 1 年を 365.25 日と数えるようになりました。
うるう月をやめて、うるう日を追加するようになったため、13 月は存在しません。
ユリウス暦
12345678910新年1112+うるう日
··
ユリウス暦はグレゴリオ暦に変わるまで続きます。
*7太陰太陽暦で追加するうるう月は年末とは限らないので、概念が異なる。
*8いい加減を正すためと言われている。


干支 (えと) の十二支は木星を見ていた - 中国

漢字を使うアジア圏では干支という考え方で年月日を数えていました。
紀元前 1700 年頃の中国が発祥とされています。

干支は、十干 (じっかん) と十二支 (じゅうにし) に分けて数えます。
10 進数と 12 進数のようですが順序はあっても桁上がりはなく、組み合わせによって 1 ~ 60 を表します。
現代の日本では年賀状の習慣やテレビの年越し番組の影響により十二支に馴染みがあります。

十干は太陽を数え*9、十二支は木星を数えます*10
月の満ち欠けや季節を観測した結果ではないので、暦 (太陰暦、太陽暦、ローマ暦、··) が関係ありません。
*910 日間 = 1 (じゅん)。上旬 + 中旬 + 下旬 = 一ヵ月。太陽が 10 個存在し、順番に現れると考えた説もある。
*10木星の公転周期が 11.86 年あり、これを 12 年と考えた。(12 回の春を迎えると木星が元の星座に戻る)

ここでは、便宜的に 1 ~ 12 の項番を割り振っていますが、十干・十二支ともに数値を表すものではありません。
十干
項番 1 2 3 4 5 6 7 8 9 10
名称
日本語読み きのえ きのと ひのえ ひのと つちのえ つちのと かのえ かのと みずのえ みずのと

十二支
項番 1 2 3 4 5 6 7 8 9 10 11 12
名称
日本語読み うし とら たつ うま ひつじ さる とり いぬ
実例 (年):
11 年目で十干が最初に戻り、13 年目で十二支が最初に戻る。
61 年目で十干・十二支ともに最初に戻る。
項番 1 2 3 4 5 6 ··· 10 11 12 13 ··· 60 61
西暦年 1984年 1985年 1986年 1987年 1988年 1989年 ··· 1993年 1994年 1995年 1996年 ··· 2043年 2044年


きのえ

きのと
うし

ひのえ
とら

ひのと

つちのえ
たつ

つちのと
···
みずのと
とり

きのえ
いぬ

きのと

ひのえ
···
みずのと

きのえ
実例 (月):
項番 1 2 3 4 5 6 ··· 10 11 12 13 ··· 60 61
西暦年
1985年
11月
1985年
12月
1986年
1月
1986年
2月
1986年
3月
1986年
4月
··· 1986年
8月
1986年
9月
1986年
10月
1986年
11月
··· 1990年
10月
1990年
11月


きのえ

きのと
うし

ひのえ
とら

ひのと

つちのえ
たつ

つちのと
···
みずのと
とり

きのえ
いぬ

きのと

ひのえ
···
みずのと

きのえ
実例 (日):
項番 1 2 3 4 5 6 ··· 10 11 12 13 ··· 60 61
西暦年
月・日
1989年
9月 1日
1989年
9月 2日
1989年
9月 3日
1989年
9月 4日
1989年
9月 5日
1989年
9月 6日
··· 1989年
9月 10日
1989年
9月 11日
1989年
9月 12日
1989年
9月 13日
··· 1989年
10月 30日
1989年
10月 31日


きのえ

きのと
うし

ひのえ
とら

ひのと

つちのえ
たつ

つちのと
···
みずのと
とり

きのえ
いぬ

きのと

ひのえ
···
みずのと

きのえ
例えば、西暦 2023 年 8 月 23 日は、癸卯(みずのと う)庚申(かのえ さる)癸丑(みずのと うし)日となります。
もはや暗号です。これをスラスラと読める人は、そう居ないでしょう。
躊躇なく読めた人は、きっと来年の同じ日も簡単に暗算できることでしょう。


新暦と旧暦 - 日本

改暦(かいれき)とは、使用する暦を変更することを指し、 改暦後を新暦(しんれき)、改暦前を旧暦(きゅうれき)と言います。
現在の日本において使用しているのは太陽暦であるグレゴリオ暦です。新暦です。
改暦前に使用していたのは天保暦(てんぽうれき)です。旧暦です。

日本は 1300 年以上続けてきた太陰太陽暦をやめて、明治 6 年 (西暦 1873 年) に世界標準に合わせました。
明治 5 年の 12 月 3 日をグレゴリオ暦に合わせて明治 6 年 1 月 1 日としたため、明治 5 年 12 月 3 日~31日は存在しません*11
(もともとずれていた西暦 1872 年から急に 1873 年になった)
天保暦に存在していた 3 年に 1 度の「うるう月(13 ヵ月)*12」がなくなり、4 年に 1 度の「うるう日(2/29)」が存在するようになりました。

今後、改暦があるとは思えませんが、もしもあった場合、グレゴリオ暦が旧暦となります。

このとき、不定時法*13 (十二時辰法) をやめ、24 時間の定時法を採用しています。
陸蒸気(おかじょうき(が運行を開始したのはこの頃です。
福沢諭吉が「文明開化」という言葉を記したのはこの 2 年後です。

*11太陰暦は月の運動を基にしていて 1 ヵ月は 29 か 30 日間のため、そもそも31日は存在しなかった。
*12うるう月を入れる場所は二十四節気の中気と関係するので、一概に決まりません。(中気が無いところに入れる)
*13不定時法は、日の出と日の入りを基準にしてその間を 6 等分する (1 単位として約 2 時間ずつに分ける) 考え方です。
昼と夜それぞれ 6 等分なので、合わせて 12 単位になります。1 単位を「(こく)」と呼びます。夏と冬では昼・夜の長さが異なるので、それに従い刻の長さも変化します。
「刻」にはそれぞれ呼び名があり、十二支が割り当てられていました。刻はさらに 4 分割され、1/4 ごとに「ひとつ」「ふたつ」「みつ」「よつ」と数えます。
「刻」は時間の始まりでなく期間を表していて、子の刻(ねのこく)は 23:00 ではなく 23:00 ~ 01:00 の約 2 時間を指します。
丑三つ時(うしみつどき(」はこれが由来です。丑の刻 (01:00 ~ 03:00 頃) の 3/4 なので 02:00 ~ 02:30 頃。
また、刻の中間である正刻(せいこく)に釣鐘をついて現在の刻を知らせていました。「おやつ」(13:00 ~ 15:00 の正刻 14:00 頃) は鐘が 8 回鳴る「昼八つ」を指しています。


節気 (二十四節気(にじゅうしせっき)) - 中国

地球は公転軌道に対して地軸が 66.6 度 (垂直から 23.4 度) 傾いているため季節があり、
赤道から遠い地域ほど景色の移り変わりを感じることができます。
太陽が高く上る季節を夏、低く上る季節を冬と呼び、北半球と南半球では夏と冬が逆に現れます。

季節があるため、以下のようなことがあります。
これら季節それぞれの特徴を 24 種類に仕分ける方法が二十四節気です。
紀元前 4 世紀頃の中国で考案されたと言われています。
中国の気候が基になっているため、日本の気候とズレがあります。

日本に馴染みがあるのは、立春 (= 節分の次の日)、春分、夏至、秋分、冬至でしょう。

暦法とは関係がありません。
···のはずが、そうもいかなくなっています。

気候は月の運動ではなく太陽の角度や日照時間 (正しくは地球の運動) に関係するので、太陽暦と相性が良い仕分け方法になっています。
二十四節気を考案したころの中国は太陰暦 (月の運動に基づく) を採用していたので、
太陽の位置に関係する二十四節気と月の満ち欠けを数える太陰暦の間には大きなズレがあり、これを修正するのに複雑な計算が必要でした。

二十四節気は「節気」「中気」の 2 種類を一組とし、12 組あります。
節気 中気 節気 中気 節気 中気
1 月小寒(しょうかん)大寒(だいかん)
5 日頃21 日頃
285°300°
2 月立春(りっしゅん)雨水(うすい) 3 月啓蟄(けいちつ)春分(しゅんぶん) 4 月清明(せいめい)穀雨(こくう)
4 日頃19 日頃 5 日頃21 日頃 5 日頃20 日頃
315°330° 345° 15°30°
5 月立夏(りっか)小満(しょうまん) 6 月芒種(ぼうしゅ)夏至(げし) 7 月小暑(しょうしょ)大暑(たいしょ)
5 日頃21 日頃 6 日頃21 日頃 7 日頃23 日頃
45°60° 75°90° 105°120°
8 月立秋(りっしゅう)処暑(しょしょ) 9 月白露(はくろ)秋分(しゅうぶん) 10 月寒露(かんろ)霜降(そうこう)
8 日頃23 日頃 8 日頃23 日頃 8 日頃24 日頃
135°150° 165°180° 195°210°
11 月立冬(りっとう)小雪(しょうせつ) 12 月大雪(たいせつ)冬至(とうじ)
7 日頃22 日頃 7 日頃21 日頃
225°240° 255°270°
二十四節気の基準は「春分点」(長い夜から長い昼に切り替わる日) です。
円を 24 等分して、各節気は地球が太陽に対して 15°ずつ移動したときに現れます。(春分が 0°)
これを定気法と呼びます。
冬至を基準日にして角度でなく時間で 24 等分する平気法 (恒気法) を使っていたこともありますが、現在はもう主流ではありません。

地球の公転軌道は円形ですが真円になっていないため移動速度に変化が現れます。このとき自転速度は影響を受けません*14
このため、等間隔の公転角度に対して日数が等間隔になりません。太陽 (重心) に近いときに地球の移動速度が速くなると、相対的に自転が遅くなったように見えます。
*14自転速度は大地震や隕石の落下等、別の要因で変化しますが、1 秒未満のズレなので日に影響はありません。

また、太陽以外の天体によって地球の公転速度も微妙に変化します。
ボイジャー1号・2号の加速で有名なスイングバイでは、利用された天体の公転速度がほんの少しだけ遅くなりますが、これと同じ理屈です。(天体同士だとさらに複雑)


グレゴリオ暦とうるう年 (付録) - それでも皇暦をグレゴリオ暦で計算したい

ここから先は日本固有の問題であり妄想を含むので、眉に唾を付けて読んでください。

3200 年ごとのうるう年キャンセルがグレゴリオ暦に規定されていないなら、
3200 年間の塊を 400 年単位で移動するのは問題が無いということを意味しています。(ホントか?)

なので、うるう年の計算方法を 800 年分前にずらします。(800 は 660 を含む 400 の最小倍数だから)
西暦 BC AD
3201 3200 ·· 801 800 ·· 5 4 3 2 1 1 2 3 4 ·· 799 800 ·· 2399 2400 ·· 3199 3200
y -3200 -3199 ·· -800 -799 ·· -4 -3 -2 -1 0 1 2 3 4 ·· 799 800 ·· 2399 2400 ·· 3199 3200
本来 平年(a) 平年 ·· うるう年 平年 ·· うるう年 平年 平年 平年 平年(b) 平年 平年 平年 うるう年 ·· 平年 うるう年 ·· 平年 うるう年 ·· 平年 平年(c)
現行 うるう年 平年 ·· うるう年 平年 ·· うるう年 平年 平年 平年 うるう年 平年 平年 平年 うるう年 ·· 平年 うるう年 ·· 平年 うるう年 ·· 平年 うるう年
これを、
 ⇓
こうする。
西暦 BC AD
3201 3200 ·· 801 800 ·· 5 4 3 2 1 1 2 3 4 ·· 799 800 ·· 2399 2400 ·· 3199 3200
y' -2400 -2399 ·· 0 1 ·· 796 797 798 799 800 801 802 803 804 ·· 1599 1600 ·· 3199 3200 ·· 3999 4000
捏造 うるう年 平年 ·· 平年(b) 平年 ·· うるう年 平年 平年 平年 うるう年 平年 平年 平年 うるう年 ·· 平年 うるう年 ·· 平年 平年(c) ·· 平年 うるう年
現行 うるう年 平年 ·· うるう年 平年 ·· うるう年 平年 平年 平年 うるう年 平年 平年 平年 うるう年 ·· 平年 うるう年 ·· 平年 うるう年 ·· 平年 うるう年
ほ~ら、これで問題が無くなった。
紀元前 3201 ~ 801 年と西暦 2400 ~ 3200 年が、ちょっとだけおかしくなるけどね。
紀元前 660 年~西暦 2399 年 (皇暦元年~ 3059 年) を現行のグレゴリオ暦で計算するためには、多少の犠牲も致し方ないかと。
Python のプログラムもこれに合わせておきます。

def isJimmuLeap(y):
  """うるう年の判定 (y: AD1 が 1 なので BC1 は 0 とする)"""
  y += 800
  leap = False
  if y %    4 == 0: leap = True
  if y %  100 == 0: leap = False
  if y %  400 == 0: leap = True
  if y % 3200 == 0: leap = False  # <- 「無理に合わせるなら、そもそもこの補正が不要では?」とか言わないように
  return leap