これはなに?

旧暦を取得する Web API です。 また、ここで言う旧暦とは天保歴を指します。

使い方

パラメータ

一般的には REST と呼ばれる形式と思います。 全てのパラメータが省略可能です。

パラメータ名 意味 デフォルト
output {xml,json,jsonp,php,usage} 出力形式 xml
callback string JSONP のコールバック関数名 callback
year int 計算する西暦(4 桁) 2017(今日)
month int 計算する月 11(今日)
day int 計算する日 19(今日)

返値

基本的に次のような変数名の構造をしてます。 XML の場合はルート要素として qreki があります。

変数名 意味
text string 旧暦文字列 2017年10月2日
text_full string 旧暦文字列(六曜を含む) 2017年10月2日 大安
year int 年(旧暦) 2017
uruu boolean 閏月であるか 0 又は false
month int 月(旧暦) 10
day int 日(旧暦) 2
rokuyou int 六曜(数値) 0
rokuyou_text string 六曜(文字列) 大安

rokuyou 変数について

オリジナルの数値を返します。 数値の意味は次の通り。

rokuyou 六曜
0 大安
1 赤口
2 先勝
3 友引
4 先負
5 仏滅

その他

免責事項・留意事項

  • 予告無しにサービスを中止することがあります
  • この API を用いて被った直接的・間接的な損害に対して保証いたしかねます
  • 計算された旧暦の精度は保証しません
  • 沢山リクエストを送らないでください

なかみ

高野氏が作成したAWK 版旧暦計算スクリプトを基に PHP へ移植された、旧暦計算 PHP スクリプトを内部で利用しています。

精度について

以下は、各々の説明書が記述されたスクリプトに対する精度の記述であり、この API 及びこの API で用いているライブラリの精度を保証するものではありません。 また、以下の報告はスクリプトの精度をなんら保証するものでは無いことに留意してください。

AWK 版旧暦計算スクリプトは、多くの資料に基づきアルゴリズムが作成されており、その計算結果は非常に精度が高いものです。 同スクリプトの同梱されている旧暦計算サンプルスクリプト Rev 1.1 説明書内では、次のような試験結果があります。

以下の3点の項目について試験を行いました。

その1:任意の日付を何ヶ所か与えて計算させて答えが正しい事。 答えの比較は『暦の百科事典』の掲載された値と行う。

その2:1600年1月1日(グレゴリオ暦法による日付)から、 1899年12月31日まで91日(約4分の1年に相当する)を増分として、 新暦の暦日を与えて旧暦の日付を計算させ計算過程で使用する朔日行列が正常に生成される事。(「朔日行列」の内容については後述いたします)

その3:1873年1月1日(グレゴリオ暦法による日付)から、 2099年12月31日まで1日(つまり、毎日)を増分として、 新暦の暦日を与えて旧暦の日付を計算させ結果が正しく表示されている事。

確認試験の結果でわかっている罵愚は、 2224年 3月21日から、同年 4月18日の期間(グレゴリオ暦法による日付)の月名が間違って表示する現象が確認されています。 具体的には、 正しい答えが3月であるのに対して、 閏2月と表示する現象です。中気の計算に問題があると判明していますが、 今の所、良い対策方法が見つかりませんので、そのままにしてあります。

試験で見つかったのは以上の1点のみで、 その外については問題が無い事を確認しました。

旧暦計算サンプルスクリプト Rev 1.1 説明書

旧暦計算ライブラリ(Perlによる旧暦計算プログラム)で掲載されている計算精度に拠ると、次のように報告されています。

本スクリプトの計算精度については、暦計算研究会編の「新こよみ便利帳」に記載の新旧対照表で、2000年から2020年までを確認したところ、2017年2月26日~同3月27日までが、旧暦・六曜表示に誤差のあることが確認されています。

旧暦計算ライブラリ(Perlによる旧暦計算プログラム)

履歴

2007-04-01T12:00
公開
2007-04-04T16:00
JSON(P) の Content-Type を text/plain に変更
2007-04-08T02:50
Expires ヘッダを返すようになりました