コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:Nami-ja/Template:sandbox5

仕様

[編集]

仕様

[編集]

曜日は旧暦と新暦と和暦それぞれで別計算が煩雑なので仕様に含めない。

引数
  • 1, type - 入力年号タイプ。
  • 2, year - YYYYまたはYY
  • 3, day - MM-DD
計算式
  1. 入力年月日のユリウス通日を算出する
  2. 各暦の閏年を求める -- グレゴリオ歴で400年間に97回(=4/100/400で割れる年)なので、別途ベタ打ちDB作った方がパーサーファンクション数が減って速いのかも。
  3. 各暦の有効範囲を確認する -- 基本的には和暦の開始~終了ユリウス日 / 寛政暦天保暦などで和暦のDBを分けた方が計算が速い気がする。ループ数増えるけど。
  4. 1.が2.の有効範囲内であれば年月日を抽出/変換。
  • 元号一覧 (日本)
  • 明治5年12月2日以前は旧暦、明治6年1月1日以降は新暦
  • ユリウス暦=紀元前45年1月1日~1582年10月4日
    • 21世紀現在でもユリウス暦使用継続地域あり
  • グレゴリオ暦=1582年10月15日~
  • ユリウス通日=紀元前4713年1月1日正午~
DB
ユリウス通日(開始, 終了), ユリウス暦(YYYYMMDD), グレゴリオ暦(YYYYMMDD), 和歴 [元号, 最終日(YYMMDD), 継続日数 ]

--//飛鳥時代 -- 大化, 白雉, (斉明天皇,) 朱鳥, (持統天皇-文武天皇,) 大宝, 慶雲, 和銅
[ [1956854, 1958551], 06450322, --------, ['大化', 060215, 1697], ],
[ [1958551, 1971845], 06550211, --------, ['白雉', 051230, 1787], ],
[ [1971845, 1972032], 06550217, --------, ['朱鳥', 011230u, 187], ],
[ [1977221, 1978361], 07040616, --------, ['大宝', 040510, 1140], ],
[ [1978361, 1979692], 07080207, --------, ['慶雲', 050111, 1331], ],
[ [1979692, 1982487], 07151003, --------, ['和銅', 010111, 2795], ],
--//奈良時代
[ [1982487, 1983300], 07171224, --------, ['霊亀', 031117, 813], ],
--//平安時代
--//鎌倉時代
--//大覚寺統
[ [2207459, 2208365], 13340305, --------, ['元弘', 040129, 906], ],
--//持明院統
[ [2207714, 2208124], 13330707, --------, ['正慶', 020525, 410], ],
--//南北朝・室町時代
[ [2208365, 2210046], 13381011, --------, ['建武', 050828, 1681], ], --//北朝5年(南朝3年)
--//--//南朝(大覚寺統)
[ [2209133, 2210638], 13400525, --------, ['延元', 050428, 1505], ],
--//--//北朝(持明院統)
[ [2210046, 2211375], 13420601, --------, ['暦応', 050427, 1329], ],
--//--//南北朝合一後
[ [2230430, 2242796], 14280610, --------, ['応永', 350427, 12366], ],
--//戦国時代
[ [2294647, 2295833], 15730825, --------, ['元亀', 040728, 1186], ],
--//安土桃山時代
[ [2295833, 2302901], 15921231, 15930110, ['天正', 201208, 7068], ], --//1582年10月15日グレゴリオ暦開始
--//江戸時代
[ [2402358, 2403629], 18680111, 18681023, ['慶応', 040930, 1271], ],
--//明治以降
[ [2403357, 2405159], 18721219, 18721231, ['明治', 051202, 1802], ], --//旧暦(明治6年12月3日~12月31日は存在しない)
[ [2405160, 2419614], 18721220, 18730101, ['明治', 060101, 144454], ], --//新暦
[ [2419614, 2403357], 19120717, 19120730, ['明治', 450730, 16257], ],
[ [2419614, 2424874], 19261211, 19261224, ['大正', 151224, 5260], ],
[ [2424596, 2447534], 19881225, 19890107, ['昭和', 640107, 22938], ],
[ [2447535, 2458604], 20190417, 20190430, ['平成', 310430, 11069], ],
[ [2458605, 9999999], 20190418, 20190501, ['令和', 010501, 99999], ],