このツールでできること
この「旧暦から西暦への変換計算機」は、中国の旧暦(太陰太陽暦)の日付を、世界中で使われている西暦(グレゴリオ暦)に変換するツールです。中国の旧暦は、中国をはじめ東アジア各地で旧正月(春節)などの伝統行事や誕生日、占いの日取りに広く使われている暦法です。旧暦の日付は毎年、西暦に対してずれていくため、いちいち計算するのは面倒なもの。このツールを使えば、対応する西暦の日付を一発で正確に割り出せます。なお、ここで扱うのは中国の旧暦であり、日本の旧暦とは月名の扱いなどが一部異なる場合がある点にご留意ください。
入力する3つの項目
- 旧暦の年 – 中国暦における年(例:2024年)。この年から、その年の干支(十二支の動物)や、十干十二支を組み合わせた干支名(年回り)も決まります。
- 旧暦の月 – 旧暦の月(1〜12)。中国暦ではときどき「閏月(うるうづき)」が挿入されるため、該当する場合は月の「閏」バージョンを選択できます。
- 旧暦の日 – 旧暦の日(1〜30)。旧暦の1か月は29日または30日のため、最大30日まで指定できます。
変換のしくみ
内部では、ICU(International Components for Unicode)の ChineseCalendar を使用しています。これは多くのOSにも採用されている、天文計算に基づく暦エンジンです。拡張年・月・閏月フラグ・日を設定したうえで、対応する西暦の日付を読み取ります。各月の位置決めには天文学的な朔(新月)や二十四節気のデータが使われており、単純な計算式によるおおまかな換算よりもはるかに信頼性の高い結果が得られます。
変換の核となる処理は次の式で表されます。
$$\text{Gregorian Date} = \text{ChineseCalendar}\left(\text{ExtendedYear} = \text{Lunar Year} + 2637,\; \text{Month} = \text{Lunar Month} - 1,\; \text{Day} = \text{Lunar Day}\right)$$また、干支(動物)は \(\text{zodiacAnimals}[(\text{year} - 1) \bmod 12]\) で算出し、干支名(年回り)は10種類の十干(天干)と12種類の十二支(地支)を組み合わせて求めています。
計算例
たとえば 旧暦2024年・1月・1日 を入力してみましょう。これは旧暦正月一日、つまり中国の旧正月(春節)にあたります。すると、計算機は西暦 2024年2月10日 を返します。2024年の干支は辰(龍)で、干支名は甲辰(こうしん/きのえ・たつ)です。日付を15に変えれば、元宵節(提灯祭り)の西暦の日付が表示されます。
よくある質問
閏月とは何ですか? 旧暦の月を太陽の1年に合わせるため、中国暦ではおよそ3年に1度の割合で「閏月」が追加されます。お探しの日付がこの閏月に含まれる場合は、その月番号の「閏」オプションを選択してください。
なぜ旧暦の日付は西暦の年ごとに変わるのですか? 旧暦の月は月の満ち欠けの周期(約29.5日)に従うため、12か月の旧暦の1年は太陽暦の1年より短くなります。そのため、同じ旧暦の日付でも毎年、対応する西暦の日付が変わってしまうのです。
結果はどのくらい正確ですか? このツールは天文計算に基づくICUの暦を採用しているため、変換結果は公式の中国暦の換算表と一致します。