2021年4月1日。
エイプリルフールのネタで『西暦→和暦を変換するWordPressプラグイン』を作成し、公開しようと思ったのですが、途中で挫折した経緯を紹介します。
まず今回、制作しようと考えていたプラグインは、令和や平成、昭和などよりももっと前の時代、具体的には江戸時代の「慶応(1865-1868)」から安土桃山時代の「天正(1573-1592)」あたりまでの年号にも対応させる機能を考えていました。
ワードプレスの投稿ページで、カレンダーで日付を選択すると、出力時に自動で和暦に変換するシステムです。
結論から言うと、このプラグインの制作は不可能だと判断したワケですが、その理由はかなり複雑で根深い問題でした。
令和、平成、昭和、大正
基本的な西暦と和暦の変換は次のとおりです。
- 令和(2019年5月1日 - 現在)
- 平成(1989年1月8日 - 2019年4月30日)
- 昭和(1926年12月25日 - 1986年1月7日)
- 大正(1912年7月30日 - 1926年12月24日)
ここまでは特に何も難しくはなく、年の部分のみで西暦→和暦に変換可能です。
明治
「令和」「平成」「昭和」「大正」はまったく問題がないのですが、明治時代まで遡ると少し様子が変わってきます。
明治後期(1873年1月1日 - 1912年7月29日)
問題がないのは明治後期まで。
1873年が明治6年で、ここまでは年の部分の指定のみで西暦→和暦に変換可能でした。
明治前期(1868年10月23日 - 1872年12月31日)
明治前期に遡ると一気に問題が発生します。
西暦1872年12月31日が明治5年12月2日。
そしてなんと、明治5年12月2日の次は明治6年1月1日になります。
「は?」って感じ。
なんと和暦では明治5年12月3日から12月31日が存在しません。
つまり。この情報をまとめると西暦と和暦で次のような関係になります。
西暦 | 和暦 |
---|---|
1873年1月2日 | 明治6年1月2日 |
1873年1月1日 | 明治6年1月1日 |
1872年12月31日 | 明治5年12月2日 |
1872年12月30日 | 明治5年12月1日 |
慶応〜文禄
さらに難易度が加速するのがここから。
江戸時代の「慶応」〜「文禄」は旧暦(天保暦)になり、和暦の月日と西暦の月日が一致しません。
問題はそれだけでなく、天保暦では1ヶ月は29日間もしくは30日間。また約3年に一度「閏月」が発生し、1年が13ヶ月になります。
さらに閏月が発生する年は12ヶ月のうちどれかの月が2回繰り返されます。
例えば「3月」の次に「閏3月」が挿入される、など。
過去に遡れば遡るほど、多くの問題に阻まれ、制作が困難になってきます。
発生した問題
その他にも多くの問題が存在したのですが、ざっとまとめて例を挙げると次のとおり。
- 西暦の月日と和暦の月日が一致しないので単純に年の部分だけ変換すれば良いという訳ではない。
- 旧暦において各月が29日間なのか30日間なのかの情報が調べても出てこない。
- どの年に閏月が発生し、どの月が2回繰り返されたのかの情報が調べても出てこない。
- 厳密にやるなら歴史的文献を調べないといけないレベルらしい。
- ちゃんと文献データを調査し旧暦を反映した厳密な西暦→和暦変換サイトが存在したが、算出の方法が載ってない。
- 過去に何度となく暦日変更を行っていた(らしい)ことが確認された。
つまり単純に西暦の日付と和暦の日付の対応関係が分からないということです。
上記の理由で、もし専門家の方のお力添えがあったとしても求める機能のプラグインの制作は不可能だと判断した次第です。
現実的には1873年1月1日(明治時代)以降に対応させるのが精一杯でしょう。
追記
WordPress プラグイン[Wareki]なら?
日本人のかたが開発している[Wareki]というワードプレスプラグインがあります。
これは大正時代まで対応していますが、今回は『「慶応(1865-1868)」から安土桃山時代の「天正(1573-1592)」あたりまでの年号にも対応』というのが目的なので、残念ながら要件を満たしていませんでした。
このチャレンジ、どなたか引き継いでくれませんかね?
追記2
「西暦⇄和暦⇄干支⇄年齢」の変換表を用意しました。
ぜひご利用ください。