« 京王電軌時代の架線柱【3】 | トップページ | 京王電軌時代の架線柱【4】 »

旧暦2033年問題【2】

現在公開しているCalend Mate version 2.00では、2月12日の「旧暦2033年問題【1】」で述べた問題点を解決するため、旧暦月決定のアルゴリズムを改良しています。

Version 1.xxでは天保暦の規則に則り、まず直前の二分二至(春分、夏至、秋分、冬至)の月を決定してから、直後の二分二至までの月数が4のときは閏月が存在するとしていました。この方法ですと先日の記事に示したような問題が生じます。

中国清朝の時憲暦の置閏規則(制定当初)は

  1. 冬至を含む月を11月とする。
  2. 次の冬至まで13ヶ月ある場合、中気を含まない最初の月を閏月とする。

となっています。この規則に従うならば、中気を含まない月があっても、翌年の冬至までに12ヶ月ある場合は閏月が存在しないことになります。また中気を含まない月が2つあっても、最初の月を閏月とするので月名の不連続は生じません。

天保暦置閏法の謎」(suchowanさん)によると嘉慶16年(1810~1811年)に置閏規則が変わり、上記の1.が「冬至を含む月を11月、春分を含む月を2月とする。」となりました。変更後の規則では冬至から春分の間に月が1つしかない場合、春分を含む月が2月とはならず矛盾が生じてしまいます。

この問題についてすのものさんは「夏至から次の夏至まで13ヶ月ある場合、どの月を閏月としたら中気と月の名とのずれが最小になるかを調べ、その月を閏月とする。」ことを提案されています。また旧暦月を中気名で呼ぶことも提案されています。

中気を二つ含む月の前後における閏月の入れ方の案(その2)(すのものの「いろいろ」)

旧暦月は平気法の時代から冬至を11月に固定して決定されていますので、すのものさんの案は従来とは逆になります。

これらを勘案した結果、Calend Mate version 2.00では原則として天保暦の規則により旧暦月を決定するが、決まらないときは清の時憲暦の制定当初の規則を適用することにしました。改良したアルゴリズムは次のようになります。

  1. 冬至から次の冬至まで、二分二至を2、5、8、11月に固定し月を決定する。
  2. 1年分の月の不連続の検査を行う。
  3. 2.で不連続があったときは、冬至から次の冬至までの月数が13の場合にのみ閏月が存在するとして月の再決定を行う。

従来は4か月分の計算ですみましたが、このアルゴリズムでは1年分の計算が必要になります。また冬至は11月に固定されますが、春分、夏至、秋分が2、5、8月からずれることがあります。

【関連記事】
旧暦2033年問題【1】 (2005.02.12)
Calend Mate作成時の参考サイト (2005.02.14)

|

« 京王電軌時代の架線柱【3】 | トップページ | 京王電軌時代の架線柱【4】 »

天体・暦」カテゴリの記事