付録A_データテーブルと生成スクリプト

付録A データテーブルと生成スクリプト

算命学ロジック完全仕様 の付録。計算に必要な3つのデータ表の実データと、それを一から作り直す手順。

本編(共有ページ)

3つの表はどれも、下のスクリプトからバイト単位で同じファイルが再生成できることを確認済み(2026-10-05)。

下のコードブロックは読みやすいように改行してある。すべての改行を取り除くと、元の *.json と1バイトも違わない(組み立て時に検証した)。

表 元のファイル 中身 件数 作り方
節入り src/setsu_table.json(24513 bytes) 1900〜2100年の12の節の 日・時・分(JST) 201年×12=2412 寿星万年暦 sxtwl 2.0.7
新月・満月 src/moon_table.json(29870 bytes) 1900-01-01 からの経過分の差分(JST) 4973 Meeus第49章(自前実装)
祝日 src/holiday_table.json(22129 bytes) 1948〜2100年の祝日 2459 jpholiday 1.0.3

A.1 節入りテーブル setsu_table.json

形式  { "1900": [[日,時,分] × 12], …, "2100": […] }
      配列の添字 0..11 は 1月..12月の「節」= 小寒・立春・啓蟄・清明・立夏・芒種・小暑・立秋・白露・寒露・立冬・大雪
      日・時・分は日本標準時(JST)。分は秒を切り捨てた値

本編が使うのは日だけ(時・分は表示用)。使い方は 算命学ロジック完全仕様 の §3.1。

{
"1900":[[6,3,3],[4,14,51],[6,9,21],[5,14,52],[6,8,55],[6,13,38],[8,0,10],[8,9,50],[8,12,16],[9,3,13],[8,5,39],[7,21,55]],
"1901":[[6,8,53],[4,20,39],[6,15,10],[5,20,44],[6,14,50],[6,19,36],[8,6,7],[8,15,46],[8,18,10],[9,9,6],[8,11,34],[8,3,52]],
"1902":[[6,14,51],[5,2,38],[6,21,7],[6,2,37],[6,20,38],[7,1,19],[8,11,46],[8,21,22],[8,23,46],[9,14,45],[8,17,17],[8,9,41]],
"1903":[[6,20,43],[5,8,31],[7,2,58],[6,8,25],[7,2,25],[7,7,7],[8,17,36],[9,3,15],[9,5,42],[9,20,41],[8,23,13],[8,15,35]],
"1904":[[7,2,37],[5,14,24],[6,8,51],[5,14,18],[6,8,18],[6,13,0],[7,23,31],[8,9,11],[8,11,37],[9,2,35],[8,5,4],[7,21,25]],
"1905":[[6,8,27],[4,20,15],[6,14,45],[5,20,14],[6,14,14],[6,18,53],[8,5,19],[8,14,56],[8,17,21],[9,8,19],[8,10,49],[8,3,10]],
"1906":[[6,14,13],[5,2,3],[6,20,36],[6,2,7],[6,20,8],[7,0,48],[8,11,15],[8,20,51],[8,23,16],[9,14,14],[8,16,46],[8,9,9]],
"1907":[[6,20,11],[5,7,58],[7,2,27],[6,7,54],[7,1,53],[7,6,32],[8,16,59],[9,2,35],[9,5,2],[9,20,2],[8,22,36],[8,14,59]],
"1908":[[7,2,1],[5,13,47],[6,8,13],[5,13,39],[6,7,38],[6,12,19],[7,22,47],[8,8,26],[8,10,52],[9,1,50],[8,4,22],[7,20,43]],
"1909":[[6,7,45],[4,19,32],[6,14,0],[5,19,29],[6,13,30],[6,18,13],[8,4,43],[8,14,22],[8,16,46],[9,7,43],[8,10,13],[8,2,34]],
"1910":[[6,13,37],[5,1,27],[6,19,56],[6,1,22],[6,19,19],[6,23,56],[8,10,21],[8,19,57],[8,22,22],[9,13,21],[8,15,53],[8,8,16]],
"1911":[[6,19,20],[5,7,10],[7,1,38],[6,7,4],[7,1,0],[7,5,37],[8,16,4],[9,1,44],[9,4,13],[9,19,14],[8,21,47],[8,14,7]],
"1912":[[7,1,7],[5,12,53],[6,7,20],[5,12,48],[6,6,47],[6,11,27],[7,21,56],[8,7,37],[8,10,5],[9,1,6],[8,3,38],[7,19,58]],
"1913":[[6,6,57],[4,18,42],[6,13,8],[5,18,35],[6,12,34],[6,17,13],[8,3,38],[8,13,15],[8,15,42],[9,6,43],[8,9,17],[8,1,41]],
"1914":[[6,12,42],[5,0,29],[6,18,55],[6,0,21],[6,18,20],[6,22,59],[8,9,27],[8,19,5],[8,21,32],[9,12,34],[8,15,11],[8,7,37]],
"1915":[[6,18,40],[5,6,25],[7,0,48],[6,6,9],[7,0,2],[7,4,40],[8,15,7],[9,0,47],[9,3,17],[9,18,20],[8,20,57],[8,13,23]],
"1916":[[7,0,27],[5,12,13],[6,6,37],[5,11,57],[6,5,49],[6,10,25],[7,20,53],[8,6,34],[8,9,4],[9,0,7],[8,2,42],[7,19,6]],
"1917":[[6,6,9],[4,17,57],[6,12,24],[5,17,49],[6,11,45],[6,16,23],[8,2,50],[8,12,30],[8,14,59],[9,6,2],[8,8,36],[8,1,0]],
"1918":[[6,12,4],[4,23,53],[6,18,20],[5,23,45],[6,17,38],[6,22,10],[8,8,32],[8,18,7],[8,20,35],[9,11,40],[8,14,18],[8,6,46]],
"1919":[[6,17,51],[5,5,39],[7,0,5],[6,5,28],[6,23,21],[7,3,56],[8,14,20],[8,23,58],[9,2,27],[9,17,33],[8,20,11],[8,12,37]],
"1920":[[6,23,40],[5,11,26],[6,5,51],[5,11,14],[6,5,11],[6,9,50],[7,20,18],[8,5,58],[8,8,26],[8,23,29],[8,2,4],[7,18,30]],
"1921":[[6,5,33],[4,17,20],[6,11,45],[5,17,8],[6,11,4],[6,15,41],[8,2,6],[8,11,43],[8,14,9],[9,5,10],[8,7,45],[8,0,11]],
"1922":[[6,11,16],[4,23,6],[6,17,33],[5,22,57],[6,16,52],[6,21,30],[8,7,57],[8,17,37],[8,20,6],[9,11,9],[8,13,45],[8,6,10]],
"1923":[[6,17,13],[5,5,0],[6,23,24],[6,4,45],[6,22,38],[7,3,14],[8,13,42],[8,23,24],[9,1,57],[9,17,3],[8,19,40],[8,12,4]],
"1924":[[6,23,5],[5,10,49],[6,5,12],[5,10,33],[6,4,25],[6,9,1],[7,19,29],[8,5,12],[8,7,45],[8,22,52],[8,1,29],[7,17,52]],
"1925":[[6,4,53],[4,16,36],[6,10,59],[5,16,22],[6,10,17],[6,14,56],[8,1,24],[8,11,7],[8,13,40],[9,4,47],[8,7,26],[7,23,52]],
"1926":[[6,10,54],[4,22,38],[6,16,59],[5,22,18],[6,16,8],[6,20,41],[8,7,5],[8,16,44],[8,19,15],[9,10,24],[8,13,7],[8,5,38]],
"1927":[[6,16,44],[5,4,30],[6,22,50],[6,4,6],[6,21,53],[7,2,24],[8,12,49],[8,22,31],[9,1,5],[9,16,15],[8,18,56],[8,11,26]],
"1928":[[6,22,31],[5,10,16],[6,4,37],[5,9,54],[6,3,43],[6,8,17],[7,18,44],[8,4,27],[8,7,1],[8,22,9],[8,0,49],[7,17,17]],
"1929":[[6,4,22],[4,16,8],[6,10,31],[5,15,51],[6,9,40],[6,14,10],[8,0,31],[8,10,8],[8,12,39],[9,3,47],[8,6,27],[7,22,56]],
"1930":[[6,10,2],[4,21,51],[6,16,16],[5,21,37],[6,15,26],[6,19,58],[8,6,19],[8,15,56],[8,18,28],[9,9,37],[8,12,20],[8,4,50]],
"1931":[[6,15,55],[5,3,40],[6,22,2],[6,3,20],[6,21,9],[7,1,41],[8,12,5],[8,21,44],[9,0,17],[9,15,26],[8,18,9],[8,10,40]],
"1932":[[6,21,45],[5,9,29],[6,3,49],[5,9,6],[6,2,55],[6,7,27],[7,17,52],[8,3,31],[8,6,2],[8,21,9],[7,23,49],[7,16,18]],
"1933":[[6,3,23],[4,15,9],[6,9,31],[5,14,50],[6,8,41],[6,13,17],[7,23,44],[8,9,25],[8,11,57],[9,3,3],[8,5,42],[7,22,11]],
"1934":[[6,9,16],[4,21,3],[6,15,26],[5,20,43],[6,14,30],[6,19,1],[8,5,24],[8,15,3],[8,17,36],[9,8,44],[8,11,26],[8,3,56]],
"1935":[[6,15,2],[5,2,48],[6,21,10],[6,2,26],[6,20,12],[7,0,41],[8,11,5],[8,20,47],[8,23,24],[9,14,35],[8,17,17],[8,9,44]],
"1936":[[6,20,46],[5,8,29],[6,2,49],[5,8,6],[6,1,56],[6,6,30],[7,16,58],[8,2,43],[8,5,20],[8,20,32],[7,23,14],[7,15,42]],
"1937":[[6,2,43],[4,14,25],[6,8,44],[5,14,1],[6,7,50],[6,12,22],[7,22,45],[8,8,25],[8,10,59],[9,2,10],[8,4,55],[7,21,26]],
"1938":[[6,8,31],[4,20,14],[6,14,33],[5,19,48],[6,13,35],[6,18,6],[8,4,31],[8,14,12],[8,16,48],[9,8,1],[8,10,48],[8,3,21]],
"1939":[[6,14,27],[5,2,10],[6,20,26],[6,1,37],[6,19,21],[6,23,51],[8,10,18],[8,20,3],[8,22,42],[9,13,56],[8,16,43],[8,9,16]],
"1940":[[6,20,23],[5,8,7],[6,2,23],[5,7,34],[6,1,16],[6,5,44],[7,16,8],[8,1,51],[8,4,29],[8,19,42],[7,22,26],[7,14,57]],
"1941":[[6,2,3],[4,13,49],[6,8,10],[5,13,24],[6,7,9],[6,11,39],[7,22,3],[8,7,45],[8,10,23],[9,1,38],[8,4,24],[7,20,55]],
"1942":[[6,8,2],[4,19,48],[6,14,9],[5,19,23],[6,13,6],[6,17,32],[8,3,51],[8,13,30],[8,16,6],[9,7,21],[8,10,11],[8,2,46]],
"1943":[[6,13,54],[5,1,40],[6,19,58],[6,1,11],[6,18,53],[6,23,18],[8,9,38],[8,19,18],[8,21,55],[9,13,10],[8,15,58],[8,8,32]],
"1944":[[6,19,39],[5,7,22],[6,1,40],[5,6,53],[6,0,39],[6,5,10],[7,15,36],[8,1,18],[8,3,55],[8,19,8],[7,21,54],[7,14,27]],
"1945":[[6,1,34],[4,13,19],[6,7,37],[5,12,51],[6,6,36],[6,11,5],[7,21,26],[8,7,5],[8,9,38],[9,0,49],[8,3,34],[7,20,7]],
"1946":[[6,7,16],[4,19,3],[6,13,24],[5,18,38],[6,12,21],[6,16,48],[8,3,10],[8,12,51],[8,15,27],[9,6,40],[8,9,27],[8,2,0]],
"1947":[[6,13,6],[5,0,50],[6,19,7],[6,0,20],[6,18,2],[6,22,31],[8,8,55],[8,18,40],[8,21,21],[9,12,37],[8,15,24],[8,7,56]],
"1948":[[6,19,0],[5,6,42],[6,0,57],[5,6,9],[5,23,52],[6,4,20],[7,14,43],[8,0,26],[8,3,4],[8,18,20],[7,21,6],[7,13,37]],
"1949":[[6,0,41],[4,12,22],[6,6,39],[5,11,51],[6,5,36],[6,10,6],[7,20,31],[8,6,14],[8,8,54],[9,0,11],[8,2,59],[7,19,33]],
"1950":[[6,6,38],[4,18,20],[6,12,35],[5,17,44],[6,11,24],[6,15,50],[8,2,13],[8,11,55],[8,14,33],[9,5,51],[8,8,43],[8,1,21]],
"1951":[[6,12,30],[5,0,13],[6,18,26],[5,23,32],[6,17,9],[6,21,32],[8,7,53],[8,17,37],[8,20,18],[9,11,36],[8,14,26],[8,7,2]],
"1952":[[6,18,9],[5,5,52],[6,0,7],[5,5,15],[5,22,54],[6,3,20],[7,13,44],[7,23,30],[8,2,13],[8,17,32],[7,20,21],[7,12,55]],
"1953":[[6,0,2],[4,11,45],[6,6,2],[5,11,12],[6,4,52],[6,9,16],[7,19,34],[8,5,14],[8,7,52],[8,23,10],[8,2,0],[7,18,36]],
"1954":[[6,5,45],[4,17,30],[6,11,48],[5,16,59],[6,10,38],[6,15,0],[8,1,19],[8,10,59],[8,13,37],[9,4,57],[8,7,50],[8,0,28]],
"1955":[[6,11,35],[4,23,17],[6,17,30],[5,22,38],[6,16,17],[6,20,43],[8,7,5],[8,16,50],[8,19,31],[9,10,52],[8,13,45],[8,6,22]],
"1956":[[6,17,30],[5,5,11],[5,23,24],[5,4,31],[5,22,9],[6,2,35],[7,12,57],[7,22,40],[8,1,18],[8,16,35],[7,19,25],[7,12,2]],
"1957":[[5,23,10],[4,10,54],[6,5,10],[5,10,18],[6,3,58],[6,8,24],[7,18,48],[8,4,32],[8,7,12],[8,22,29],[8,1,20],[7,17,55]],
"1958":[[6,5,4],[4,16,49],[6,11,4],[5,16,12],[6,9,49],[6,14,12],[8,0,33],[8,10,17],[8,12,58],[9,4,19],[8,7,11],[7,23,49]],
"1959":[[6,10,58],[4,22,42],[6,16,56],[5,22,3],[6,15,38],[6,20,0],[8,6,19],[8,16,4],[8,18,47],[9,10,9],[8,13,2],[8,5,37]],
"1960":[[6,16,42],[5,4,23],[5,22,36],[5,3,43],[5,21,22],[6,1,48],[7,12,12],[7,21,59],[8,0,45],[8,16,8],[7,19,2],[7,11,37]],
"1961":[[5,22,42],[4,10,22],[6,4,34],[5,9,42],[6,3,21],[6,7,45],[7,18,6],[8,3,48],[8,6,29],[8,21,50],[8,0,46],[7,17,25]],
"1962":[[6,4,34],[4,16,17],[6,10,29],[5,15,34],[6,9,9],[6,13,31],[7,23,51],[8,9,33],[8,12,15],[9,3,37],[8,6,34],[7,23,16]],
"1963":[[6,10,26],[4,22,7],[6,16,17],[5,21,18],[6,14,51],[6,19,14],[8,5,37],[8,15,25],[8,18,11],[9,9,36],[8,12,32],[8,5,12]],
"1964":[[6,16,22],[5,4,4],[5,22,15],[5,3,18],[5,20,51],[6,1,11],[7,11,32],[7,21,16],[7,23,59],[8,15,21],[7,18,15],[7,10,53]],
"1965":[[5,22,1],[4,9,46],[6,4,0],[5,9,6],[6,2,41],[6,7,2],[7,17,21],[8,3,4],[8,5,47],[8,21,11],[8,0,6],[7,16,45]],
"1966":[[6,3,54],[4,15,37],[6,9,51],[5,14,56],[6,8,30],[6,12,49],[7,23,6],[8,8,48],[8,11,32],[9,2,56],[8,5,55],[7,22,37]],
"1967":[[6,9,48],[4,21,30],[6,15,41],[5,20,44],[6,14,17],[6,18,36],[8,4,53],[8,14,34],[8,17,17],[9,8,41],[8,11,37],[8,4,17]],
"1968":[[6,15,26],[5,3,7],[5,21,17],[5,2,20],[5,19,55],[6,0,19],[7,10,41],[7,20,27],[7,23,11],[8,14,34],[7,17,29],[7,10,8]],
"1969":[[5,21,16],[4,8,58],[6,3,10],[5,8,14],[6,1,49],[6,6,11],[7,16,31],[8,2,14],[8,4,55],[8,20,16],[7,23,11],[7,15,51]],
"1970":[[6,3,1],[4,14,45],[6,8,58],[5,14,1],[6,7,33],[6,11,52],[7,22,10],[8,7,54],[8,10,37],[9,2,1],[8,4,57],[7,21,37]],
"1971":[[6,8,45],[4,20,25],[6,14,34],[5,19,36],[6,13,8],[6,17,28],[8,3,51],[8,13,40],[8,16,30],[9,7,58],[8,10,56],[8,3,35]],
"1972":[[6,14,41],[5,2,20],[5,20,28],[5,1,28],[5,19,1],[5,23,21],[7,9,42],[7,19,28],[7,22,15],[8,13,41],[7,16,39],[7,9,18]],
"1973":[[5,20,25],[4,8,4],[6,2,12],[5,7,13],[6,0,46],[6,5,6],[7,15,27],[8,1,12],[8,3,59],[8,19,27],[7,22,27],[7,15,10]],
"1974":[[6,2,19],[4,14,0],[6,8,7],[5,13,4],[6,6,33],[6,10,51],[7,21,11],[8,6,57],[8,9,45],[9,1,14],[8,4,17],[7,21,4]],
"1975":[[6,8,17],[4,19,59],[6,14,5],[5,19,1],[6,12,27],[6,16,42],[8,2,59],[8,12,44],[8,15,33],[9,7,2],[8,10,2],[8,2,46]],
"1976":[[6,13,57],[5,1,39],[5,19,48],[5,0,46],[5,18,14],[5,22,31],[7,8,50],[7,18,38],[7,21,28],[8,12,58],[7,15,58],[7,8,40]],
"1977":[[5,19,51],[4,7,33],[6,1,44],[5,6,45],[6,0,15],[6,4,32],[7,14,47],[8,0,30],[8,3,15],[8,18,43],[7,21,45],[7,14,30]],
"1978":[[6,1,43],[4,13,26],[6,7,38],[5,12,39],[6,6,8],[6,10,23],[7,20,36],[8,6,17],[8,9,2],[9,0,30],[8,3,34],[7,20,20]],
"1979":[[6,7,31],[4,19,12],[6,13,19],[5,18,17],[6,11,47],[6,16,5],[8,2,24],[8,12,10],[8,14,59],[9,6,30],[8,9,32],[8,2,17]],
"1980":[[6,13,28],[5,1,9],[5,19,16],[5,0,14],[5,17,44],[5,22,3],[7,8,23],[7,18,8],[7,20,53],[8,12,19],[7,15,18],[7,8,1]],
"1981":[[5,19,12],[4,6,55],[6,1,5],[5,6,5],[5,23,34],[6,3,52],[7,14,11],[7,23,57],[8,2,43],[8,18,9],[7,21,8],[7,13,51]],
"1982":[[6,1,2],[4,12,45],[6,6,54],[5,11,52],[6,5,19],[6,9,35],[7,19,54],[8,5,41],[8,8,31],[9,0,2],[8,3,4],[7,19,48]],
"1983":[[6,6,58],[4,18,39],[6,12,47],[5,17,44],[6,11,10],[6,15,25],[8,1,43],[8,11,29],[8,14,20],[9,5,51],[8,8,52],[8,1,33]],
"1984":[[6,12,40],[5,0,18],[5,18,24],[4,23,22],[5,16,50],[5,21,8],[7,7,29],[7,17,17],[7,20,9],[8,11,42],[7,14,45],[7,7,28]],
"1985":[[5,18,35],[4,6,11],[6,0,16],[5,5,13],[5,22,42],[6,2,59],[7,13,18],[7,23,4],[8,1,53],[8,17,24],[7,20,29],[7,13,16]],
"1986":[[6,0,28],[4,12,7],[6,6,12],[5,11,6],[6,4,30],[6,8,44],[7,19,0],[8,4,45],[8,7,34],[8,23,6],[8,2,12],[7,19,0]],
"1987":[[6,6,13],[4,17,51],[6,11,53],[5,16,44],[6,10,5],[6,14,18],[8,0,38],[8,10,29],[8,13,24],[9,4,59],[8,8,5],[8,0,52]],
"1988":[[6,12,3],[4,23,42],[5,17,46],[4,22,39],[5,16,1],[5,20,14],[7,6,32],[7,16,20],[7,19,11],[8,10,44],[7,13,48],[7,6,34]],
"1989":[[5,17,45],[4,5,27],[5,23,34],[5,4,29],[5,21,53],[6,2,5],[7,12,19],[7,22,3],[8,0,53],[8,16,27],[7,19,33],[7,12,20]],
"1990":[[5,23,33],[4,11,14],[6,5,19],[5,10,12],[6,3,35],[6,7,46],[7,18,0],[8,3,45],[8,6,37],[8,22,13],[8,1,23],[7,18,14]],
"1991":[[6,5,28],[4,17,8],[6,11,12],[5,16,4],[6,9,26],[6,13,38],[7,23,52],[8,9,37],[8,12,27],[9,4,1],[8,7,7],[7,23,56]],
"1992":[[6,11,8],[4,22,48],[5,16,52],[4,21,45],[5,15,8],[5,19,22],[7,5,40],[7,15,27],[7,18,18],[8,9,51],[7,12,57],[7,5,44]],
"1993":[[5,16,56],[4,4,37],[5,22,42],[5,3,37],[5,21,1],[6,1,15],[7,11,32],[7,21,17],[8,0,7],[8,15,40],[7,18,45],[7,11,33]],
"1994":[[5,22,48],[4,10,30],[6,4,37],[5,9,31],[6,2,54],[6,7,4],[7,17,19],[8,3,4],[8,5,55],[8,21,29],[8,0,35],[7,17,22]],
"1995":[[6,4,34],[4,16,12],[6,10,16],[5,15,8],[6,8,30],[6,12,42],[7,23,0],[8,8,51],[8,11,48],[9,3,27],[8,6,35],[7,23,22]],
"1996":[[6,10,31],[4,22,7],[5,16,9],[4,21,2],[5,14,26],[5,18,40],[7,4,59],[7,14,48],[7,17,42],[8,9,18],[7,12,26],[7,5,14]],
"1997":[[5,16,24],[4,4,1],[5,22,4],[5,2,56],[5,20,19],[6,0,32],[7,10,49],[7,20,36],[7,23,28],[8,15,5],[7,18,14],[7,11,4]],
"1998":[[5,22,18],[4,9,56],[6,3,57],[5,8,44],[6,2,3],[6,6,13],[7,16,30],[8,2,19],[8,5,15],[8,20,55],[8,0,8],[7,17,1]],
"1999":[[6,4,17],[4,15,57],[6,9,57],[5,14,44],[6,8,0],[6,12,9],[7,22,24],[8,8,14],[8,11,9],[9,2,48],[8,5,57],[7,22,47]],
"2000":[[6,10,0],[4,21,40],[5,15,42],[4,20,31],[5,13,50],[5,17,58],[7,4,13],[7,14,2],[7,16,59],[8,8,38],[7,11,48],[7,4,37]],
"2001":[[5,15,49],[4,3,28],[5,21,32],[5,2,24],[5,19,44],[5,23,53],[7,10,6],[7,19,52],[7,22,46],[8,14,25],[7,17,36],[7,10,28]],
"2002":[[5,21,43],[4,9,24],[6,3,27],[5,8,18],[6,1,37],[6,5,44],[7,15,56],[8,1,39],[8,4,31],[8,20,9],[7,23,21],[7,16,14]],
"2003":[[6,3,27],[4,15,5],[6,9,4],[5,13,52],[6,7,10],[6,11,19],[7,21,35],[8,7,24],[8,10,20],[9,2,0],[8,5,13],[7,22,5]],
"2004":[[6,9,18],[4,20,56],[5,14,55],[4,19,43],[5,13,2],[5,17,13],[7,3,31],[7,13,19],[7,16,12],[8,7,49],[7,10,58],[7,3,48]],
"2005":[[5,15,2],[4,2,43],[5,20,45],[5,1,34],[5,18,52],[5,23,1],[7,9,16],[7,19,3],[7,21,56],[8,13,33],[7,16,42],[7,9,32]],
"2006":[[5,20,46],[4,8,27],[6,2,28],[5,7,15],[6,0,30],[6,4,36],[7,14,51],[8,0,40],[8,3,39],[8,19,21],[7,22,34],[7,15,26]],
"2007":[[6,2,40],[4,14,18],[6,8,17],[5,13,4],[6,6,20],[6,10,27],[7,20,41],[8,6,31],[8,9,29],[9,1,11],[8,4,24],[7,21,14]],
"2008":[[6,8,24],[4,20,0],[5,13,58],[4,18,45],[5,12,3],[5,16,11],[7,2,26],[7,12,16],[7,15,14],[8,6,56],[7,10,10],[7,3,2]],
"2009":[[5,14,14],[4,1,49],[5,19,47],[5,0,33],[5,17,50],[5,21,59],[7,8,13],[7,18,1],[7,20,57],[8,12,40],[7,15,56],[7,8,52]],
"2010":[[5,20,8],[4,7,47],[6,1,46],[5,6,30],[5,23,44],[6,3,49],[7,14,2],[7,23,49],[8,2,44],[8,18,26],[7,21,42],[7,14,38]],
"2011":[[6,1,54],[4,13,32],[6,7,29],[5,12,11],[6,5,23],[6,9,27],[7,19,41],[8,5,33],[8,8,34],[9,0,19],[8,3,34],[7,20,28]],
"2012":[[6,7,43],[4,19,22],[5,13,21],[4,18,5],[5,11,19],[5,15,25],[7,1,40],[7,11,30],[7,14,28],[8,6,11],[7,9,25],[7,2,18]],
"2013":[[5,13,33],[4,1,13],[5,19,14],[5,0,2],[5,17,18],[5,21,23],[7,7,34],[7,17,20],[7,20,16],[8,11,58],[7,15,13],[7,8,8]],
"2014":[[5,19,24],[4,7,3],[6,1,2],[5,5,46],[5,22,59],[6,3,3],[7,13,14],[7,23,2],[8,2,1],[8,17,47],[7,21,6],[7,14,4]],
"2015":[[6,1,20],[4,12,58],[6,6,55],[5,11,39],[6,4,52],[6,8,58],[7,19,12],[8,5,1],[8,7,59],[8,23,42],[8,2,58],[7,19,53]],
"2016":[[6,7,8],[4,18,46],[5,12,43],[4,17,27],[5,10,41],[5,14,48],[7,1,3],[7,10,52],[7,13,51],[8,5,33],[7,8,47],[7,1,41]],
"2017":[[5,12,55],[4,0,34],[5,18,32],[4,23,17],[5,16,30],[5,20,36],[7,6,50],[7,16,39],[7,19,38],[8,11,22],[7,14,37],[7,7,32]],
"2018":[[5,18,48],[4,6,28],[6,0,28],[5,5,12],[5,22,25],[6,2,29],[7,12,41],[7,22,30],[8,1,29],[8,17,14],[7,20,31],[7,13,25]],
"2019":[[6,0,38],[4,12,14],[6,6,9],[5,10,51],[6,4,2],[6,8,6],[7,18,20],[8,4,12],[8,7,16],[8,23,5],[8,2,24],[7,19,18]],
"2020":[[6,6,29],[4,18,3],[5,11,56],[4,16,38],[5,9,51],[5,13,58],[7,0,14],[7,10,6],[7,13,7],[8,4,55],[7,8,13],[7,1,9]],
"2021":[[5,12,23],[3,23,58],[5,17,53],[4,22,34],[5,15,47],[5,19,51],[7,6,5],[7,15,53],[7,18,52],[8,10,38],[7,13,58],[7,6,56]],
"2022":[[5,18,13],[4,5,50],[5,23,43],[5,4,20],[5,21,25],[6,1,25],[7,11,37],[7,21,28],[8,0,32],[8,16,22],[7,19,45],[7,12,46]],
"2023":[[6,0,4],[4,11,42],[6,5,36],[5,10,12],[6,3,18],[6,7,18],[7,17,30],[8,3,22],[8,6,26],[8,22,15],[8,1,35],[7,18,32]],
"2024":[[6,5,49],[4,17,26],[5,11,22],[4,16,2],[5,9,9],[5,13,9],[6,23,19],[7,9,9],[7,12,11],[8,3,59],[7,7,19],[7,0,16]],
"2025":[[5,11,32],[3,23,10],[5,17,7],[4,21,48],[5,14,56],[5,18,56],[7,5,4],[7,14,51],[7,17,51],[8,9,40],[7,13,3],[7,6,4]],
"2026":[[5,17,22],[4,5,1],[5,22,58],[5,3,39],[5,20,48],[6,0,48],[7,10,56],[7,20,42],[7,23,40],[8,15,28],[7,18,51],[7,11,52]],
"2027":[[5,23,9],[4,10,45],[6,4,39],[5,9,17],[6,2,24],[6,6,25],[7,16,36],[8,2,26],[8,5,28],[8,21,16],[8,0,38],[7,17,37]],
"2028":[[6,4,54],[4,16,30],[5,10,24],[4,15,2],[5,8,11],[5,12,15],[6,22,29],[7,8,20],[7,11,21],[8,3,8],[7,6,26],[6,23,24]],
"2029":[[5,10,41],[3,22,20],[5,16,17],[4,20,58],[5,14,7],[5,18,9],[7,4,22],[7,14,11],[7,17,11],[8,8,57],[7,12,16],[7,5,13]],
"2030":[[5,16,30],[4,4,8],[5,22,2],[5,2,40],[5,19,45],[5,23,44],[7,9,55],[7,19,46],[7,22,52],[8,14,44],[7,18,8],[7,11,7]],
"2031":[[5,22,22],[4,9,57],[6,3,50],[5,8,27],[6,1,34],[6,5,35],[7,15,48],[8,1,42],[8,4,49],[8,20,42],[8,0,5],[7,17,2]],
"2032":[[6,4,15],[4,15,48],[5,9,39],[4,14,17],[5,7,25],[5,11,27],[6,21,40],[7,7,32],[7,10,37],[8,2,29],[7,5,53],[6,22,52]],
"2033":[[5,10,7],[3,21,41],[5,15,31],[4,20,7],[5,13,13],[5,17,12],[7,3,24],[7,13,15],[7,16,19],[8,8,13],[7,11,40],[7,4,44]],
"2034":[[5,16,4],[4,3,40],[5,21,31],[5,2,5],[5,19,8],[5,23,6],[7,9,17],[7,19,8],[7,22,13],[8,14,6],[7,17,33],[7,10,36]],
"2035":[[5,21,55],[4,9,31],[6,3,21],[5,7,53],[6,0,54],[6,4,50],[7,15,0],[8,0,53],[8,4,1],[8,19,57],[7,23,23],[7,16,24]],
"2036":[[6,3,42],[4,15,19],[5,9,11],[4,13,45],[5,6,48],[5,10,46],[6,20,57],[7,6,48],[7,9,54],[8,1,48],[7,5,14],[6,22,15]],
"2037":[[5,9,33],[3,21,11],[5,15,5],[4,19,43],[5,12,48],[5,16,46],[7,2,54],[7,12,42],[7,15,44],[8,7,37],[7,11,3],[7,4,6]],
"2038":[[5,15,26],[4,3,3],[5,20,54],[5,1,28],[5,18,30],[5,22,25],[7,8,31],[7,18,20],[7,21,25],[8,13,20],[7,16,50],[7,9,55]],
"2039":[[5,21,16],[4,8,52],[6,2,42],[5,7,15],[6,0,17],[6,4,14],[7,14,25],[8,0,17],[8,3,23],[8,19,16],[7,22,42],[7,15,44]],
"2040":[[6,3,2],[4,14,39],[5,8,30],[4,13,4],[5,6,8],[5,10,7],[6,20,18],[7,6,9],[7,9,13],[8,1,4],[7,4,28],[6,21,29]],
"2041":[[5,8,47],[3,20,24],[5,14,17],[4,18,51],[5,11,53],[5,15,49],[7,1,57],[7,11,48],[7,14,52],[8,6,46],[7,10,12],[7,3,15]],
"2042":[[5,14,34],[4,2,12],[5,20,5],[5,0,39],[5,17,42],[5,21,37],[7,7,46],[7,17,38],[7,20,44],[8,12,39],[7,16,6],[7,9,8]],
"2043":[[5,20,24],[4,7,58],[6,1,47],[5,6,19],[5,23,21],[6,3,17],[7,13,27],[7,23,20],[8,2,29],[8,18,27],[7,21,55],[7,14,56]],
"2044":[[6,2,11],[4,13,43],[5,7,30],[4,12,2],[5,5,4],[5,9,3],[6,19,15],[7,5,7],[7,8,15],[8,0,12],[7,3,41],[6,20,44]],
"2045":[[5,8,1],[3,19,35],[5,13,24],[4,17,56],[5,10,58],[5,14,56],[7,1,7],[7,10,58],[7,14,4],[8,5,59],[7,9,29],[7,2,34]],
"2046":[[5,13,55],[4,1,30],[5,19,17],[4,23,44],[5,16,39],[5,20,31],[7,6,39],[7,16,32],[7,19,42],[8,11,41],[7,15,13],[7,8,20]],
"2047":[[5,19,41],[4,7,17],[6,1,4],[5,5,31],[5,22,27],[6,2,20],[7,12,29],[7,22,25],[8,1,37],[8,17,36],[7,21,6],[7,14,10]],
"2048":[[6,1,28],[4,13,3],[5,6,53],[4,11,24],[5,4,23],[5,8,17],[6,18,26],[7,4,18],[7,7,27],[7,23,25],[7,2,56],[6,20,0]],
"2049":[[5,7,17],[3,18,52],[5,12,42],[4,17,13],[5,10,11],[5,14,2],[7,0,8],[7,9,57],[7,13,4],[8,5,4],[7,8,37],[7,1,45]],
"2050":[[5,13,7],[4,0,43],[5,18,31],[4,23,2],[5,16,1],[5,19,54],[7,6,1],[7,15,51],[7,18,59],[8,10,59],[7,14,32],[7,7,40]],
"2051":[[5,19,1],[4,6,35],[6,0,21],[5,4,48],[5,21,46],[6,1,39],[7,11,48],[7,21,41],[8,0,50],[8,16,49],[7,20,21],[7,13,27]],
"2052":[[6,0,47],[4,12,22],[5,6,8],[4,10,36],[5,3,34],[5,7,28],[6,17,39],[7,3,32],[7,6,41],[7,22,39],[7,2,9],[6,19,14]],
"2053":[[5,6,35],[3,18,12],[5,12,2],[4,16,33],[5,9,32],[5,13,26],[6,23,36],[7,9,29],[7,12,37],[8,4,35],[7,8,5],[7,1,11]],
"2054":[[5,12,31],[4,0,7],[5,17,54],[4,22,22],[5,15,17],[5,19,6],[7,5,13],[7,15,6],[7,18,18],[8,10,21],[7,13,55],[7,7,2]],
"2055":[[5,18,21],[4,5,55],[5,23,40],[5,4,7],[5,21,3],[6,0,55],[7,11,4],[7,21,0],[8,0,14],[8,16,18],[7,19,51],[7,12,57]],
"2056":[[6,0,14],[4,11,46],[5,5,31],[4,9,59],[5,2,57],[5,6,51],[6,17,1],[7,2,55],[7,6,6],[7,22,8],[7,1,42],[6,18,50]],
"2057":[[5,6,9],[3,17,41],[5,11,26],[4,15,51],[5,8,45],[5,12,35],[6,22,41],[7,8,33],[7,11,43],[8,3,45],[7,7,22],[7,0,33]],
"2058":[[5,11,57],[3,23,33],[5,17,19],[4,21,43],[5,14,35],[5,18,23],[7,4,30],[7,14,24],[7,17,37],[8,9,40],[7,13,16],[7,6,26]],
"2059":[[5,17,48],[4,5,23],[5,23,7],[5,3,31],[5,20,23],[6,0,11],[7,10,18],[7,20,11],[7,23,25],[8,15,29],[7,19,4],[7,12,12]],
"2060":[[5,23,33],[4,11,7],[5,4,53],[4,9,18],[5,2,12],[5,6,0],[6,16,6],[7,1,58],[7,5,9],[7,21,12],[7,0,48],[6,17,56]],
"2061":[[5,5,17],[3,16,52],[5,10,40],[4,15,9],[5,8,5],[5,11,55],[6,22,1],[7,7,52],[7,11,1],[8,3,3],[7,6,39],[6,23,49]],
"2062":[[5,11,11],[3,22,46],[5,16,30],[4,20,54],[5,13,46],[5,17,34],[7,3,37],[7,13,28],[7,16,39],[8,8,43],[7,12,21],[7,5,33]],
"2063":[[5,16,56],[4,4,30],[5,22,13],[5,2,36],[5,19,27],[5,23,16],[7,9,24],[7,19,19],[7,22,32],[8,14,36],[7,18,11],[7,11,19]],
"2064":[[5,22,40],[4,10,14],[5,3,58],[4,8,23],[5,1,17],[5,5,9],[6,15,18],[7,1,13],[7,4,25],[7,20,27],[7,0,0],[6,17,8]],
"2065":[[5,4,28],[3,16,2],[5,9,48],[4,14,13],[5,7,4],[5,10,51],[6,20,56],[7,6,48],[7,10,1],[8,2,5],[7,5,41],[6,22,52]],
"2066":[[5,10,14],[3,21,48],[5,15,33],[4,19,56],[5,12,47],[5,16,35],[7,2,41],[7,12,36],[7,15,52],[8,8,0],[7,11,38],[7,4,47]],
"2067":[[5,16,6],[4,3,36],[5,21,17],[5,1,39],[5,18,31],[5,22,20],[7,8,28],[7,18,24],[7,21,41],[8,13,50],[7,17,29],[7,10,39]],
"2068":[[5,21,58],[4,9,28],[5,3,8],[4,7,28],[5,0,19],[5,4,8],[6,14,16],[7,0,10],[7,3,25],[7,19,32],[6,23,12],[6,16,25]],
"2069":[[5,3,47],[3,15,20],[5,9,1],[4,13,23],[5,6,13],[5,10,2],[6,20,10],[7,6,5],[7,9,19],[8,1,26],[7,5,6],[6,22,21]],
"2070":[[5,9,46],[3,21,21],[5,15,1],[4,19,19],[5,12,4],[5,15,47],[7,1,51],[7,11,45],[7,15,3],[8,7,12],[7,10,54],[7,4,9]],
"2071":[[5,15,35],[4,3,10],[5,20,51],[5,1,9],[5,17,54],[5,21,37],[7,7,42],[7,17,38],[7,20,57],[8,13,7],[7,16,47],[7,10,0]],
"2072":[[5,21,22],[4,8,56],[5,2,40],[4,7,2],[4,23,52],[5,3,39],[6,13,44],[6,23,38],[7,2,54],[7,19,2],[6,22,43],[6,15,55]],
"2073":[[5,3,18],[3,14,52],[5,8,35],[4,12,58],[5,5,47],[5,9,29],[6,19,30],[7,5,19],[7,8,32],[8,0,40],[7,4,23],[6,21,39]],
"2074":[[5,9,5],[3,20,40],[5,14,23],[4,18,44],[5,11,32],[5,15,16],[7,1,20],[7,11,12],[7,14,27],[8,6,36],[7,10,18],[7,3,33]],
"2075":[[5,14,57],[4,2,29],[5,20,10],[5,0,30],[5,17,18],[5,21,5],[7,7,12],[7,17,7],[7,20,23],[8,12,30],[7,16,10],[7,9,23]],
"2076":[[5,20,46],[4,8,19],[5,2,0],[4,6,19],[4,23,7],[5,2,53],[6,12,59],[6,22,53],[7,2,8],[7,18,14],[6,21,52],[6,15,4]],
"2077":[[5,2,27],[3,14,2],[5,7,46],[4,12,8],[5,4,57],[5,8,43],[6,18,50],[7,4,45],[7,8,2],[8,0,10],[7,3,49],[6,21,1]],
"2078":[[5,8,24],[3,19,56],[5,13,37],[4,17,55],[5,10,40],[5,14,24],[7,0,28],[7,10,23],[7,13,42],[8,5,55],[7,9,38],[7,2,52]],
"2079":[[5,14,12],[4,1,42],[5,19,20],[4,23,36],[5,16,21],[5,20,5],[7,6,11],[7,16,8],[7,19,29],[8,11,42],[7,15,26],[7,8,39]],
"2080":[[5,19,58],[4,7,27],[5,1,4],[4,5,22],[4,22,9],[5,1,57],[6,12,4],[6,22,2],[7,1,21],[7,17,33],[6,21,17],[6,14,33]],
"2081":[[5,1,55],[3,13,25],[5,7,2],[4,11,16],[5,3,59],[5,7,40],[6,17,42],[7,3,36],[7,6,53],[7,23,5],[7,2,52],[6,20,11]],
"2082":[[5,7,37],[3,19,11],[5,12,49],[4,17,2],[5,9,42],[5,13,21],[6,23,24],[7,9,20],[7,12,41],[8,4,56],[7,8,43],[7,2,0]],
"2083":[[5,13,25],[4,0,57],[5,18,35],[4,22,49],[5,15,30],[5,19,11],[7,5,15],[7,15,12],[7,18,33],[8,10,48],[7,14,35],[7,7,51]],
"2084":[[5,19,14],[4,6,45],[5,0,24],[4,4,39],[4,21,22],[5,1,2],[6,11,2],[6,20,55],[7,0,13],[7,16,26],[6,20,12],[6,13,30]],
"2085":[[5,0,55],[3,12,29],[5,6,9],[4,10,27],[5,3,12],[5,6,53],[6,16,55],[7,2,48],[7,6,6],[7,22,19],[7,2,6],[6,19,26]],
"2086":[[5,6,53],[3,18,25],[5,12,3],[4,16,17],[5,8,58],[5,12,38],[6,22,39],[7,8,32],[7,11,51],[8,4,6],[7,7,55],[7,1,15]],
"2087":[[5,12,41],[4,0,14],[5,17,51],[4,22,3],[5,14,44],[5,18,23],[7,4,27],[7,14,23],[7,17,43],[8,9,56],[7,13,42],[7,6,59]],
"2088":[[5,18,24],[4,5,57],[4,23,36],[4,3,52],[4,20,36],[5,0,19],[6,10,25],[6,20,23],[6,23,43],[7,15,55],[6,19,40],[6,12,56]],
"2089":[[5,0,20],[3,11,54],[5,5,34],[4,9,49],[5,2,31],[5,6,9],[6,16,10],[7,2,4],[7,5,23],[7,21,37],[7,1,24],[6,18,42]],
"2090":[[5,6,8],[3,17,41],[5,11,20],[4,15,35],[5,8,16],[5,11,54],[6,21,55],[7,7,52],[7,11,15],[8,3,33],[7,7,22],[7,0,39]],
"2091":[[5,12,1],[3,23,30],[5,17,5],[4,21,19],[5,14,2],[5,17,44],[7,3,50],[7,13,48],[7,17,12],[8,9,30],[7,13,20],[7,6,37]],
"2092":[[5,18,0],[4,5,28],[4,23,2],[4,3,13],[4,19,55],[4,23,37],[6,9,40],[6,19,35],[6,22,55],[7,15,11],[6,19,0],[6,12,20]],
"2093":[[4,23,46],[3,11,17],[5,4,53],[4,9,5],[5,1,45],[5,5,26],[6,15,30],[7,1,27],[7,4,49],[7,21,5],[7,0,55],[6,18,16]],
"2094":[[5,5,44],[3,17,16],[5,10,50],[4,14,59],[5,7,35],[5,11,11],[6,21,13],[7,7,11],[7,10,35],[8,2,54],[7,6,46],[7,0,7]],
"2095":[[5,11,34],[3,23,6],[5,16,41],[4,20,50],[5,13,25],[5,16,59],[7,3,0],[7,12,58],[7,16,22],[8,8,41],[7,12,32],[7,5,51]],
"2096":[[5,17,15],[4,4,46],[4,22,22],[4,2,35],[4,19,15],[4,22,53],[6,8,56],[6,18,52],[6,22,16],[7,14,34],[6,18,25],[6,11,45]],
"2097":[[4,23,10],[3,10,41],[5,4,17],[4,8,29],[5,1,7],[5,4,43],[6,14,40],[7,0,32],[7,3,52],[7,20,10],[7,0,3],[6,17,27]],
"2098":[[5,4,55],[3,16,28],[5,10,3],[4,14,12],[5,6,48],[5,10,22],[6,20,21],[7,6,15],[7,9,38],[8,1,57],[7,5,50],[6,23,12]],
"2099":[[5,10,38],[3,22,8],[5,15,42],[4,19,50],[5,12,28],[5,16,7],[7,2,11],[7,12,9],[7,15,33],[8,7,51],[7,11,42],[7,5,2]],
"2100":[[5,16,28],[4,3,59],[5,21,34],[5,1,43],[5,18,20],[5,21,57],[7,7,58],[7,17,53],[7,21,14],[8,13,30],[7,17,19],[7,10,39]]
}

A.1.1 再生成スクリプト(sxtwl 版)

pip install sxtwl==2.0.7
python3 gen_setsu_table.py > setsu_table.json
cmp setsu_table.json 元のsetsu_table.json   # 何も出なければバイト単位で一致

sxtwl は時刻を北京時間で返すので、1時間足して JST にしている。秒は切り捨て。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""節入りテーブル setsu_table.json を、寿星万年暦ライブラリ sxtwl から再生成する。

  pip install sxtwl
  python3 gen_setsu_table.py > setsu_table.json

出力の形式:
  { "1900": [[日, 時, 分], ... 12個], ..., "2100": [...] }
  配列の index 0..11 は 1月..12月の「節」= 小寒・立春・啓蟄・清明・立夏・芒種・小暑・立秋・白露・寒露・立冬・大雪。
  日・時・分は日本標準時(JST = UTC+9)。分は秒を切り捨てた値。

sxtwl の時刻は北京時間(UTC+8)で返るので、1時間足して JST にする。
getJieQiByYear(y) は「y年の立春」から「y+1年の立春」までの25個(節気・中気をまとめて)を返すので、
y-1 と y の両方を呼び、JST で見た暦年が y に入るものを拾う。
"""
import json
import sys
import sxtwl

NAMES = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种",
         "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"]
# 節(月の始まり)だけを使う。中気(大寒・雨水…)は使わない。
SETSU_INDEX = {1: 1, 3: 2, 5: 3, 7: 4, 9: 5, 11: 6, 13: 7, 15: 8, 17: 9, 19: 10, 21: 11, 23: 12}
#               ↑ sxtwl の jqIndex → 暦の月(小寒=1月 … 大雪=12月)


def to_jst(t):
    """sxtwl の Time(北京時間)を JST の (年,月,日,時,分) にする。秒は切り捨て。"""
    total = int(t.h) * 60 + int(t.m) + 60            # +1時間(sxtwl は float を返すので int にする)
    day_shift, total = divmod(total, 24 * 60)
    y, m, d = int(t.Y), int(t.M), int(t.D)
    if day_shift:
        # 日をまたぐときだけ、翌日へ進める(sxtwl の日付演算に頼らず自前で)
        dim = [31, 29 if (y % 4 == 0 and (y % 100 != 0 or y % 400 == 0)) else 28,
               31, 30, 31, 30, 31, 31, 30, 31, 30, 31][m - 1]
        d += 1
        if d > dim:
            d, m = 1, m + 1
            if m > 12:
                m, y = 1, y + 1
    return y, m, d, total // 60, total % 60


def build(y0=1900, y1=2100):
    table = {}
    for y in range(y0, y1 + 1):
        rows = {}
        for yy in (y - 1, y):
            for jq in sxtwl.getJieQiByYear(yy):
                if jq.jqIndex not in SETSU_INDEX:
                    continue
                Y, M, D, h, mi = to_jst(sxtwl.JD2DD(jq.jd))
                if Y == y and M == SETSU_INDEX[jq.jqIndex]:
                    rows[M] = [D, h, mi]
        if len(rows) != 12:
            raise SystemExit('%d年: 節が12個そろいません(%d個)' % (y, len(rows)))
        table[str(y)] = [rows[m] for m in range(1, 13)]
    return table


if __name__ == '__main__':
    json.dump(build(), sys.stdout, separators=(',', ':'))
別の天文暦でも検証した

pyephem(VSOP87)で太陽黄経を解いて作り直しても、2,412件のすべてで「日」が一致した(時刻は最大 約80秒ずれる)。日単位でしか使わないので、どちらで作っても結果は同じ。


A.2 新月・満月テーブル moon_table.json

形式  { "epoch":[1900,1,1,0,0], "step":[1372, 20476, …] }
      step[0] は起点(1900-01-01 00:00 JST)からの経過分。step[i] は直前の朔望との差(分)
      偶数番目が新月、奇数番目が満月(朔望は必ず交互に来る)

展開のしかたは 算命学ロジック完全仕様 の §18.3。

{"epoch":[1900,1,1,0,0],"step":[
1372,20476,21975,20907,21455,21407,20898,21872,20421,22214,20113,22368,20029,22315,20181,22067,20543,21673,21051,21201,21609,20733,22097,20361,22403,20172,22463,20214,22275,20479,21889,20907,21377,21402,20839,21855,20380,22185,20092,22344,20033,22314,20218,22097,20615,21715,21148,21224,21695,20723,
22139,20331,22395,20142,22427,20191,22229,20459,21836,20881,21325,21366,20802,21826,20372,22186,20116,22384,20086,22372,20293,22132,20698,21703,21218,21172,21742,20659,22161,20274,22393,20092,22393,20147,22172,20418,21783,20852,21303,21368,20817,21869,20411,22252,20167,22437,20143,22383,20353,22101,
20760,21646,21272,21103,21771,20585,22149,20203,22342,20037,22335,20113,22144,20415,21796,20884,21341,21427,20855,21931,20441,22295,20194,22455,20176,22377,20392,22066,20787,21576,21268,21015,21732,20506,22100,20155,22319,20021,22351,20129,22182,20457,21829,20944,21355,21493,20856,21998,20439,22352,
20193,22477,20171,22340,20375,21980,20755,21482,21232,20951,21714,20481,22112,20160,22348,20049,22377,20175,22195,20523,21830,21031,21347,21590,20833,22068,20398,22360,20142,22419,20122,22258,20335,21919,20732,21457,21230,20952,21727,20499,22129,20190,22366,20096,22403,20245,22218,20613,21828,21114,
21299,21629,20752,22051,20314,22313,20078,22379,20082,22241,20316,21917,20729,21461,21241,20964,21756,20524,22183,20232,22435,20151,22446,20302,22200,20652,21748,21123,21196,21617,20663,22037,20254,22302,20044,22369,20067,22230,20321,21913,20760,21477,21308,20994,21851,20554,22266,20252,22461,20159,
22403,20303,22116,20649,21664,21117,21131,21606,20617,22016,20228,22277,20040,22357,20091,22247,20380,21952,20852,21509,21406,20994,21916,20525,22278,20213,22434,20127,22359,20279,22069,20624,21615,21086,21089,21574,20599,22002,20240,22302,20081,22414,20158,22299,20461,21963,20928,21469,21461,20928,
21946,20458,22286,20156,22416,20079,22314,20236,22014,20591,21579,21075,21089,21602,20629,22066,20286,22370,20135,22447,20214,22284,20518,21912,20982,21401,21499,20854,21952,20384,22252,20094,22359,20036,22273,20220,22012,20609,21611,21128,21130,21671,20662,22122,20310,22399,20158,22451,20245,22260,
20548,21856,20991,21319,21473,20769,21904,20324,22215,20066,22359,20042,22306,20255,22052,20666,21634,21195,21134,21738,20655,22185,20302,22439,20150,22441,20230,22195,20518,21764,20952,21242,21444,20730,21903,20321,22241,20088,22392,20083,22327,20313,22057,20744,21627,21289,21113,21824,20616,22223,
20249,22409,20095,22366,20182,22122,20486,21724,20942,21237,21455,20745,21924,20346,22264,20127,22416,20141,22352,20393,22068,20831,21598,21348,21041,21829,20527,22184,20172,22362,20043,22340,20156,22118,20480,21730,20951,21247,21479,20764,21970,20378,22329,20173,22476,20194,22364,20439,22010,20850,
21498,21341,20941,21811,20456,22171,20130,22356,20024,22332,20155,22113,20501,21738,21004,21269,21567,20792,22066,20398,22387,20180,22463,20191,22293,20430,21923,20841,21425,21331,20891,21796,20424,22150,20119,22338,20038,22337,20199,22145,20581,21776,21104,21284,21652,20770,22102,20355,22372,20138,
22423,20159,22249,20404,21878,20813,21383,21299,20865,21774,20425,22158,20149,22385,20094,22399,20276,22177,20662,21754,21168,21222,21689,20695,22117,20289,22367,20084,22392,20114,22199,20367,21835,20791,21370,21311,20885,21827,20466,22233,20199,22441,20146,22405,20329,22137,20712,21689,21210,21147,
21709,20620,22100,20223,22318,20034,22341,20088,22180,20372,21855,20833,21411,21380,20922,21896,20490,22277,20217,22453,20168,22392,20354,22096,20728,21619,21198,21062,21668,20549,22055,20182,22301,20027,22365,20112,22223,20424,21889,20901,21421,21451,20912,21963,20475,22329,20201,22469,20150,22353,
20327,22013,20690,21532,21162,21007,21654,20534,22073,20197,22338,20063,22396,20165,22236,20493,21885,20988,21403,21541,20878,22024,20423,22329,20142,22410,20095,22274,20286,21960,20669,21517,21166,21019,21676,20558,22099,20231,22363,20110,22422,20233,22254,20576,21873,21061,21345,21571,20789,22000,
20336,22280,20079,22373,20060,22265,20273,21967,20675,21529,21188,21034,21714,20582,22159,20267,22430,20158,22459,20279,22227,20604,21787,21059,21240,21551,20705,21983,20283,22273,20053,22370,20054,22261,20288,21969,20717,21543,21263,21059,21813,20603,22241,20275,22451,20152,22410,20266,22142,20589,
21707,21047,21182,21539,20669,21966,20267,22255,20058,22366,20086,22282,20354,22007,20812,21570,21361,21049,21873,20561,22246,20223,22418,20110,22366,20235,22100,20563,21666,21019,21152,21514,20659,21962,20285,22289,20103,22427,20155,22333,20434,22010,20884,21519,21406,20971,21895,20485,22248,20162,
22400,20061,22327,20196,22055,20534,21641,21016,21159,21551,20693,22034,20333,22360,20153,22459,20204,22311,20481,21950,20925,21445,21434,20895,21895,20414,22214,20105,22349,20025,22293,20187,22060,20562,21677,21079,21201,21628,20721,22095,20346,22387,20166,22455,20221,22282,20497,21893,20924,21366,
21404,20818,21847,20362,22182,20086,22356,20039,22333,20232,22104,20628,21698,21152,21195,21698,20701,22154,20324,22420,20144,22442,20194,22217,20461,21806,20883,21298,21377,20788,21853,20368,22217,20116,22397,20087,22357,20294,22105,20707,21682,21241,21163,21774,20652,22183,20262,22387,20082,22368,
20145,22151,20431,21776,20878,21302,21397,20812,21883,20399,22246,20156,22422,20143,22379,20368,22107,20784,21643,21290,21083,21771,20560,22139,20186,22341,20035,22348,20124,22156,20432,21791,20897,21318,21432,20829,21936,20427,22314,20194,22479,20186,22383,20401,22043,20791,21541,21272,20987,21748,
20493,22128,20152,22340,20025,22348,20134,22156,20464,21800,20960,21337,21524,20850,22033,20435,22367,20188,22459,20169,22309,20380,21958,20774,21474,21260,20945,21736,20473,22113,20152,22330,20046,22359,20186,22189,20549,21834,21061,21341,21606,20815,22062,20379,22346,20135,22417,20129,22267,20351,
21921,20747,21443,21235,20928,21724,20480,22131,20186,22383,20105,22421,20262,22217,20625,21803,21117,21268,21633,20732,22069,20309,22337,20080,22390,20086,22226,20319,21887,20734,21436,21256,20953,21785,20523,22212,20232,22440,20151,22424,20304,22169,20663,21730,21148,21190,21645,20659,22050,20246,
22292,20036,22347,20067,22214,20333,21913,20786,21480,21334,20988,21860,20539,22256,20238,22448,20159,22403,20316,22125,20667,21661,21128,21112,21603,20596,22008,20215,22282,20039,22376,20102,22262,20394,21948,20860,21484,21407,20967,21924,20510,22300,20211,22457,20130,22362,20281,22046,20626,21584,
21093,21067,21594,20591,22034,20238,22327,20081,22412,20159,22274,20465,21935,20944,21455,21490,20921,21976,20449,22294,20145,22398,20072,22290,20240,22001,20610,21577,21105,21088,21625,20620,22070,20273,22357,20127,22437,20221,22286,20539,21915,21005,21390,21509,20828,21946,20361,22245,20084,22366,
20042,22287,20235,22017,20626,21596,21136,21105,21673,20640,22134,20303,22423,20163,22469,20254,22252,20554,21824,20993,21286,21483,20748,21928,20317,22242,20067,22370,20047,22291,20260,22023,20676,21610,21219,21122,21774,20650,22213,20296,22437,20145,22413,20230,22166,20530,21749,20977,21236,21473,
20724,21917,20310,22233,20081,22372,20086,22315,20332,22058,20774,21628,21314,21101,21827,20596,22210,20235,22399,20094,22371,20194,22131,20503,21719,20953,21216,21455,20722,21922,20334,22273,20129,22437,20154,22364,20408,22054,20838,21566,21351,21014,21839,20515,22207,20171,22382,20047,22338,20159,
22095,20482,21702,20959,21229,21502,20759,22002,20379,22348,20173,22467,20194,22334,20443,21986,20867,21488,21368,20937,21834,20449,22173,20121,22337,20019,22312,20160,22106,20520,21742,21032,21270,21586,20780,22065,20382,22372,20172,22456,20197,22301,20446,21929,20856,21414,21335,20869,21790,20405,
22147,20113,22350,20043,22358,20212,22152,20593,21759,21109,21255,21654,20747,22117,20347,22398,20139,22439,20162,22238,20406,21849,20815,21356,21312,20849,21802,20420,22190,20149,22399,20094,22383,20278,22148,20670,21733,21192,21211,21722,20688,22138,20279,22360,20074,22369,20112,22179,20378,21828,
20818,21369,21340,20879,21843,20453,22227,20188,22426,20145,22401,20344,22142,20736,21686,21229,21126,21710,20594,22092,20205,22317,20032,22354,20099,22193,20389,21851,20846,21389,21385,20895,21902,20474,22296,20216,22477,20176,22398,20362,22074,20731,21583,21204,21033,21685,20536,22083,20180,22323,
20031,22363,20118,22199,20430,21860,20917,21402,21482,20906,21996,20471,22343,20196,22451,20147,22321,20333,21991,20708,21525,21189,21004,21676,20526,22076,20188,22321,20060,22378,20175,22232,20517,21889,21017,21397,21557,20859,22018,20404,22315,20134,22408,20101,22284,20302,21963,20684,21504,21172,
20996,21673,20539,22102,20225,22381,20119,22441,20247,22254,20587,21848,21064,21313,21574,20770,22017,20330,22305,20080,22385,20063,22251,20277,21938,20680,21504,21203,21023,21744,20581,22189,20267,22437,20156,22437,20279,22197,20613,21770,21082,21235,21578,20700,21997,20275,22264,20045,22349,20054,
22246,20300,21969,20742,21548,21289,21053,21823,20586,22231,20260,22439,20149,22412,20277,22151,20607,21704,21058,21165,21537,20647,21960,20253,22261,20057,22385,20096,22299,20368,22002,20821,21544,21363,21020,21882,20544,22269,20219,22443,20111,22370,20237,22078,20564,21636,21025,21130,21534,20650,
21994,20284,22314,20103,22426,20156,22308,20438,21983,20899,21504,21437,20963,21925,20476,22256,20150,22383,20054,22303,20199,22042,20553,21639,21046,21157,21576,20684,22040,20318,22347,20146,22448,20210,22313,20501,21954,20948,21433,21444,20870,21888,20392,22207,20095,22355,20030,22309,20203,22065,
20580,21662,21088,21174,21632,20698,22107,20337,22412,20169,22474,20230,22274,20502,21862,20927,21332,21414,20797,21870,20356,22209,20088,22368,20043,22320,20237,22073,20639,21672,21175,21184,21732,20698,22180,20319,22418,20138,22415,20194,22189,20472,21793,20907,21293,21406,20783,21867,20359,22208,
20109,22377,20089,22345,20311,22107,20735,21683,21266,21150,21779,20631,22169,20248,22377,20081,22374,20156,22160,20447,21773,20889,21284,21397,20788,21882,20386,22256,20157,22444,20155,22391,20382,22093,20790,21612,21291,21056,21781,20547,22162,20185,22362,20038,22349,20127,22134,20435,21762,20907,
21299,21454,20824,21969,20426,22334,20193,22470,20183,22354,20404,22019,20807,21531,21299,20983,21772,20487,22131,20144,22323,20019,22329,20139,22150,20482,21805,20987,21337,21545,20837,22031,20417,22353,20178,22454,20173,22316,20396,21964,20789,21464,21265,20923,21731,20454,22111,20143,22344,20051,
22381,20198,22198,20561,21817,21065,21312,21609,20791,22077,20369,22372,20134,22434,20131,22257,20353,21892,20751,21415,21247,20914,21751,20476,22164,20185,22398,20105,22407,20263,22188,20633,21780,21140,21258,21666,20723,22090,20297,22332,20070,22367,20083,22206,20331,21880,20760,21437,21286,20948,
21802,20510,22207,20220,22426,20149,22420,20317,22175,20686,21727,21165,21170,21647,20632,22041,20229,22291,20034,22360,20078,22227,20351,21909,20800,21457,21340,20960,21867,20522,22275,20237,22472,20166,22411,20323,22103,20670,21626,21133,21084,21619,20583,22036,20213,22304,20043,22376,20106,22239,
20401,21917,20876,21466,21437,20961,21957,20506,22315,20204,22440,20126,22332,20285,22025,20643,21576,21121,21064,21617,20583,22037,20229,22311,20078,22395,20167,22271,20488,21940,20972,21449,21506,20902,21970,20429,22281,20136,22396,20078,22300,20256,22006,20624,21566,21111,21064,21624,20600,22073,
20267,22374,20134,22457,20235,22286,20549,21889,21008,21358,21513,20808,21963,20356,22270,20085,22379,20045,22276,20238,21989,20631,21571,21151,21093,21703,20639,22163,20302,22429,20161,22447,20253,22223,20562,21808,21015,21281,21511,20744,21943,20308,22235,20059,22350,20044,22278,20271,22023,20701,
21614,21245,21116,21784,20633,22202,20281,22425,20141,22416,20240,22176,20547,21747,20989,21219,21472,20701,21912,20296,22239,20079,22393,20094,22334,20344,22054,20783,21601,21316,21071,21836,20578,22232,20230,22424,20095,22376,20196,22110,20505,21688,20960,21195,21476,20713,21955,20332,22300,20128,
22437,20154,22339,20412,22025,20853,21551,21379,21006,21869,20505,22216,20160,22366,20039,22315,20163,22081,20502,21700,20990,21227,21529,20748,22008,20364,22337,20164,22455,20199,22337,20462,21990,20889,21476,21378,20912,21829,20425,22168,20110,22344,20024,22328,20175,22113,20538,21728,21042,21242,
21591,20756,22076,20373,22396,20175,22475,20204,22293,20452,21896,20860,21380,21345,20848,21813,20398,22176,20113,22365,20047,22345,20218,22122,20604,21733,21132,21243,21689,20743,22143,20341,22396,20132,22413,20160,22211,20416,21835,20839,21353,21340,20845,21817,20411,22183,20141,22379,20096,22373,
20293,22151,20697,21735,21215,21198,21726,20666,22126,20263,22351,20073,22374,20123,22190,20394,21826,20829,21351,21341,20856,21841,20440,22237,20188,22448,20157,22414,20356,22129,20741,21655,21230,21099,21720,20581,22114,20204,22339,20034,22356,20102,22171,20392,21822,20856,21370,21407,20890,21935,
20474,22316,20214,22469,20172,22371,20364,22050,20746,21573,21230,21031,21708,20529,22088,20170,22308,20025,22344,20122,22193,20448,21865,20945,21402,21502,20892,21996,20452,22329,20184,22447,20150,22330,20346,21998,20724,21515,21195,20982,21673,20505,22076,20178,22336,20064,22401,20187,22240,20530,
21871,21022,21365,21561,20833,22034,20393,22342,20132,22426,20103,22276,20303,21936,20688,21475,21185,20980,21702,20534,22135,20224,22396,20118,22427,20248,22224,20595,21826,21086,21302,21607,20761,22039,20319,22301,20069,22363,20061,22232,20287,21932,20706,21505,21233,21018,21762,20567,22184,20253,
22423,20153,22433,20292,22203,20635,21767,21099,21215,21580,20673,21990,20257,22264,20042,22363,20064,22261,20318,21965,20757,21525,21295,21024,21830,20569,22250,20257,22463,20156,22418,20285,22129,20610,21669,21064,21136,21554,20634,21988,20251,22285,20060,22387,20100,22276,20375,21971,20836,21526,
21392,21013,21915,20540,22282,20213,22426,20106,22341,20240,22058,20581,21629,21052,21128,21558,20644,21999,20274,22299,20099,22409,20163,22305,20460,21987,20927,21498,21452,20944,21918,20456,22244,20140,22382,20059,22314,20213,22048,20568,21629,21052,21135,21575,20663,22043,20311,22366,20151,22470,
20222,22314,20510,21928,20950,21401,21448,20849,21906,20385,22233,20095,22370,20033,22299,20206,22038,20585,21637,21104,21162,21662,20696,22137,20336,22418,20165,22453,20227,22245,20510,21844,20948,21328,21442,20792,21888,20346,22204,20079,22349,20042,22306,20247,22075,20663,21678,21201,21177,21743,
20679,22170,20302,22407,20133,22418,20203,22199,20488,21792,20919,21276,21407,20759,21864,20342,22216,20106,22398,20097,22364,20325,22102,20744,21655,21269,21119,21788,20612,22193,20242,22402,20082,22379,20158,22141,20449,21742,20897,21260,21419,20778,21915,20384,22284,20156,22445,20154,22366,20385,
22065,20805,21595,21321,21048,21810,20537,22172,20172,22347,20031,22325,20131,22120,20454,21761,20937,21298,21482,20814,21975,20411,22322,20183,22460,20187,22357,20422,22023,20828,21520,21309,20958,21768,20463,22126,20132,22331,20023,22346,20153,22158,20500,21791,20997,21309,21549,20812,22043,20408,
22376,20181,22472,20180,22309,20401,21933,20793,21430,21275,20903,21754,20447,22141,20143,22360,20054,22369,20203,22168,20571,21791,21088,21299,21643,20786,22103,20364,22370,20127,22408,20130,22230,20362,21880,20773,21413,21275,20910,21768,20466,22158,20176,22380,20105,22397,20276,22192,20659,21782,
21163,21245,21669,20702,22078,20281,22324,20067,22373,20093,22219,20346,21880,20772,21419,21288,20924,21802,20494,22218,20219,22449,20159,22433,20328,22161,20691,21696,21166,21142,21656,20619,22065,20226,22316,20035,22364,20081,22208,20354,21881,20809,21438,21363,20954,21900,20520,22296,20233,22465,
20160,22383,20324,22079,20685,21617,21159,21081,21644,20576,22043,20202,22292,20035,22358,20110,22233,20418,21923,20904,21465,21458,20946,21957,20485,22302,20191,22436,20127,22342,20298,22032,20659,21568,21127,21042,21615,20561,22039,20218,22327,20080,22419,20179,22280,20500,21922,20977,21417,21509,
20876,21986,20416,22308,20134,22414,20079,22293,20257,21979,20629,21537,21125,21048,21652,20596,22107,20266,22391,20133,22443,20235,22256,20556,21867,21029,21347,21544,20800,21985,20344,22267,20075,22357,20042,22257,20249,21983,20656,21572,21183,21088,21721,20624,22160,20287,22416,20156,22444,20264,
22229,20583,21806,21032,21261,21513,20718,21937,20289,22236,20055,22364,20055,22292,20289,22021,20716,21591,21251,21087,21790,20616,22221,20278,22449,20146,22424,20246,22155,20550,21713,20993,21192,21487,20689,21940,20294,22263,20082,22395,20099,22311,20351,22023,20798,21582,21346,21064,21868,20574,
22246,20223,22408,20090,22347,20198,22090,20521,21683,20986,21194,21500,20706,21962,20321,22286,20123,22421,20160,22336,20432,22031,20878,21547,21393,20987,21863,20484,22204,20149,22366,20043,22328,20175,22090,20517,21691,20997,21205,21527,20727,22012,20356,22355,20169,22477,20210,22338,20470,21965,
20890,21444,21382,20892,21847,20418,22194,20110,22361,20026,22320,20178,22086,20543,21702,21057,21230,21620,20754,22106,20370,22404,20169,22455,20201,22265,20457,21882,20879,21377,21372,20845,21830,20390,22172,20103,22347,20044,22333,20228,22123,20628,21738,21158,21236,21699,20723,22135,20321,22386,
20125,22416,20168,22222,20432,21836,20851,21336,21342,20821,21816,20394,22191,20137,22402,20103,22392,20306,22146,20706,21706,21218,21167,21734,20647,22149,20256,22377,20072,22382,20124,22171,20398,21796,20837,21327,21364,20845,21876,20437,22266,20186,22449,20155,22389,20357,22101,20755,21638,21259,
21090,21750,20571,22125,20191,22326,20026,22335,20104,22159,20411,21821,20886,21369,21436,20879,21942,20457,22305,20202,22459,20176,22373,20381,22054,20767,21563,21240,21006,21705,20505,22082,20159,22316,20028,22362,20136,22202,20467,21851,20955,21374,21506,20868,22007,20441,22353,20186,22465,20156,
22323,20351,21968,20727,21481,21206,20961,21696,20499,22105,20179,22353,20067,22390,20192,22211,20539,21845,21043,21354,21593,20830,22058,20386,22341,20125,22400,20101,22250,20312,21923,20710,21475,21212,20978,21718,20525,22131,20215,22378,20117,22417,20261,22229,20619,21828,21108,21289,21611,20739,
22027,20302,22293,20066,22371,20069,22245,20302,21934,20717,21488,21236,20993,21762,20550,22196,20252,22446,20161,22448,20301,22191,20639,21736,21100,21187,21591,20659,22014,20253,22289,20043,22369,20066,22242,20321,21938,20765,21506,21318,21018,21863,20567,22271,20252,22456,20150,22391,20284,22107,
20623,21660,21089,21134,21579,20627,21997,20240,22273,20052,22370,20103,22270,20392,21978,20863,21525,21413,20997,21916,20517,22271,20198,22422,20107,22351,20253,22066,20596,21622,21060,21105,21558,20621,22001,20262,22315,20101,22434,20173,22315,20471,21969,20931,21465,21456,20917,21934,20443,22272,
20137,22402,20059,22309,20215,22022,20573,21599,21067,21117,21605,20657,22078,20309,22383,20149,22456,20221,22284,20517,21905,20971,21390,21480,20841,21928,20373,22231,20085,22350,20029,22280,20216,22033,20609,21639,21135,21157,21681,20682,22132,20321,22405,20160,22449,20237,22252,20530,21843,20964,
21309,21445,20766,21882,20327,22206,20074,22364,20051,22323,20265,22073,20678,21654,21208,21147,21749,20660,22189,20297,22432,20137,22425,20209,22180,20491,21758,20924,21249,21423,20746,21893,20341,22241,20109,22402,20101,22342,20330,22071,20759,21636,21296,21113,21819,20607,22206,20235,22387,20076,
22351,20161,22121,20464,21738,20923,21260,21444,20772,21923,20372,22271,20149,22430,20158,22365,20403,22071,20829,21592,21333,21029,21805,20516,22160,20162,22347,20033,22338,20144,22131,20468,21754,20944,21276,21481,20792,21980,20401,22342,20186,22482,20196,22359,20428,21999,20829,21487,21314,20937,
21785,20455,22154,20131,22349,20025,22340,20155,22133,20505,21765,21014,21296,21579,20809,22074,20403,22385,20173,22453,20175,22281,20406,21918,20812,21427,21302,20900,21773,20438,22139,20133,22343,20051,22357,20212,22170,20593,21796,21114,21292,21654,20765,22095,20343,22361,20119,22412,20136,22243,
20377,21881,20787,21396,21279,20885,21767,20448,22167,20171,22403,20112,22417,20288,22188,20667,21754,21165,21212,21679,20682,22101,20273,22351,20066,22381,20095,22200,20349,21850,20780,21396,21310,20913,21836,20492,22247,20217,22451,20156,22408,20330,22133,20704,21679,21194,21135,21685,20609,22077,
20213,22303,20028,22342,20083,22196,20372,21880,20840,21438,21390,20944,21907,20503,22285,20220,22455,20163,22385,20340,22084,20705,21607,21170,21056,21642,20552,22038,20191,22299,20039,22376,20125,22243,20436,21909,20914,21436,21462,20920,21969,20473,22326,20192,22455,20133,22336,20303,22003,20662,
21535,21136,21022,21638,20555,22068,20219,22344,20084,22408,20184,22250,20509,21895,20998,21405,21541,20872,22010,20410,22308,20125,22391,20076,22268,20265,21967,20650,21538,21152,21046,21670,20586,22104,20255,22374,20130,22434,20246,22261,20579,21870,21050,21334,21548,20777,21975,20326,22260,20070,
22366,20050,22272,20263,21986,20668,21556,21187,21062,21722,20607,22172,20283,22440,20163,22459,20272,22217,20586,21774,21034,21233,21523,20704,21961,20286,22262,20056,22372,20057,22276,20291,21993,20725,21571,21274,21080,21823,20612,22243,20271,22443,20139,22397,20244,22134,20562,21705,21018,21190,
21513,20682,21951,20282,22254,20073,22380,20100,22306,20367,22030,20823,21583,21365,21048,21869,20550,22235,20207,22405,20089,22358,20210,22099,20536,21676,20996,21170,21501,20683,21964,20310,22303,20124,22446,20170,22347,20443,22012,20883,21512,21398,20958,21880,20470,22231,20146,22386,20044,22323,
20178,22064,20521,21662,21012,21188,21557,20722,22047,20353,22373,20166,22464,20208,22308,20476,21941,20911,21433,21413,20883,21869,20407,22193,20100,22341,20023,22301,20188,22081,20568,21704,21089,21225,21640,20738,22103,20353,22391,20163,22451,20211,22271,20477,21880,20897,21358,21376,20818,21825,
20371,22173,20099,22361,20053,22350,20245,22124,20641,21715,21165,21205,21706,20703,22153,20318,22410,20129,22425,20173,22203,20434,21803,20857,21308,21358,20808,21844,20392,22218,20139,22407,20106,22371,20311,22116,20719,21687,21245,21160,21766,20641,22163,20248,22364,20065,22354,20126,22153,20411,
21792,20863,21328,21389,20839,21884,20426,22254,20178,22434,20158,22388,20375,22107,20779,21634,21271,21072,21745,20549,22115,20179,22327,20028,22349,20116,22170,20425,21815,20894,21346,21436,20856,21947,20446,22325,20204,22482,20183,22376,20386,22031,20767,21531,21245,20984,21723,20498,22111,20157,
22336,20029,22358,20138,22177,20471,21826,20970,21361,21536,20863,22039,20435,22362,20177,22447,20150,22296,20356,21953,20745,21479,21233,20958,21716,20490,22105,20168,22337,20062,22379,20200,22213,20562,21850,21069,21345,21605,20807,22051,20364,22332,20116,22405,20107,22262,20327,21926,20724,21459,
21218,20952,21719,20506,22141,20208,22402,20123,22437,20273,22223,20628,21798,21110,21256,21620,20718,22051,20293,22321,20065,22380,20071,22229,20306,21903,20727,21463,21259,20982,21797,20548,22225,20248,22449,20157,22423,20302,22161,20652,21719,21128,21179,21620,20650,22026,20241,22278,20035,22347,
20069,22230,20338,21938,20796,21506,21346,21007,21871,20548,22260,20239,22446,20151,22395,20298,22113,20642,21651,21100,21110,21577,20603,21993,20228,22281,20055,22388,20117,22282,20409,21966,20873,21496,21417,20971,21926,20505,22294,20198,22442,20111,22346,20257,22038,20599,21589,21070,21085,21580,
20615,22032,20263,22334,20103,22425,20177,22286,20479,21943,20951,21454,21486,20912,21960,20435,22271,20130,22378,20056,22284,20223,22011,20593,21601,21094,21116,21623,20648,22075,20297,22368,20144,22448,20231,22289,20538,21909,20991,21378,21484,20817,21919,20354,22226,20079,22359,20036,22297,20229,
22037,20622,21623,21139,21131,21683,20662,22146,20315,22430,20165,22466,20244,22240,20532,21813,20965,21281,21455,20752,21906,20324,22232,20074,22374,20052,22307,20267,22046,20686,21634,21232,21139,21783,20655,22212,20289,22426,20129,22400,20206,22158,20503,21750,20949,21247,21449,20741,21904,20329,
22233,20099,22387,20101,22338,20345,22078,20784,21636,21317,21095,21820,20583,22195,20218,22385,20074,22363,20171,22132,20480,21731,20934,21237,21446,20748,21926,20359,22289,20149,22455,20168,22375,20413,22052,20834,21556,21339,20999,21822,20501,22189,20158,22369,20033,22335,20146,22106,20473,21725,
20959,21257,21512,20785,22016,20398,22360,20182,22469,20194,22328,20434,21975,20850,21476,21344,20930,21808,20444,22154,20121,22330,20021,22322,20165,22128,20529,21768,21044,21292,21599,20792,22071,20385,22372,20166,22449,20183,22289,20424,21917,20829,21410,21306,20874,21769,20418,22141,20128,22359,
20059,22375,20229,22171,20608,21772,21120,21261,21659,20745,22114,20337,22385,20122,22422,20140,22225,20381,21849,20791,21370,21294,20873,21795,20447,22194,20173,22409,20114,22396,20293,22156,20680,21735,21191,21205,21710,20676,22116,20264,22338,20059,22356,20096,22182,20363,21847,20805,21397,21336,
20908,21846,20479,22236,20207,22437,20158,22407,20346,22140,20726,21676,21206,21115,21682,20586,22067,20201,22304,20028,22358,20094,22209,20386,21875,20848,21416,21392,20919,21913,20490,22306,20221,22478,20169,22389,20344,22061,20705,21575,21174,21035,21660,20543,22068,20189,22321,20039,22374,20126,
22219,20440,21884,20929,21423,21492,20915,22000,20467,22335,20182,22437,20125,22310,20306,21989,20680,21533,21164,21019,21660,20545,22071,20207,22330,20078,22397,20191,22253,20530,21901,21024,21396,21553,20847,22005,20387,22299,20115,22397,20080,22282,20279,21971,20664,21522,21158,21021,21672,20565,
22114,20248,22398,20135,22456,20256,22257,20587,21839,21054,21300,21558,20755,21998,20318,22288,20068,22377,20051,22256,20268,21956,20677,21531,21209,21051,21758,20603,22202,20280,22442,20159,22433,20273,22188,20598,21758,21060,21225,21553,20695,21973,20275,22251,20048,22351,20059,22263,20309,21994,
20754,21572,21303,21068,21832,20592,22233,20256,22433,20139,22401,20259,22139,20581,21697,21029,21167,21513,20657,21948,20269,22263,20075,22398,20114,22318,20383,22018,20833,21552,21370,21020,21881,20537,22258,20207,22425,20093,22354,20214,22073,20539,21645,21004,21151,21523,20677,21995,20310,22322,
20126,22438,20172,22318,20450,21986,20902,21500,21428,20954,21904,20464,22232,20137,22364,20040,22299,20184,22055,20541,21664,21038,21188,21576,20712,22046,20340,22358,20160,22456,20216,22314,20495,21946,20929,21422,21417,20860,21861,20387,22189,20093,22352,20028,22320,20201,22087,20580,21689,21093,
21199,21642,20717,22117,20346,22416,20166,22468,20215,22261,20479,21850,20897,21330,21387,20803,21851,20367,22202,20099,22373,20054,22335,20247,22096,20650,21695,21187,21197,21739,20698,22176,20307,22406,20119,22400,20170,22182,20445,21796,20881,21307,21385,20803,21856,20381,22211,20129,22392,20106,
22366,20325,22123,20745,21686,21265,21142,21768,20615,22153,20230,22362,20062,22367,20136,22164,20426,21788,20873,21306,21392,20815,21889,20410,22273,20177,22461,20167,22398,20384,22088,20783,21599,21275,21042,21761,20535,22143,20175,22349,20028,22347,20119,22145,20431,21786,20910,21327,21467,20849,
21984,20443,22343,20199,22469,20179,22346,20391,22007,20787,21521,21274,20977,21747,20486,22113,20146,22319,20025,22339,20148,22172,20495,21829,21001,21356,21556,20846,22036,20416,22349,20170,22444,20156,22305,20372,21955,20761,21463,21238,20932,21713,20469,22107,20162,22354,20070,22397,20216,22215,
20575,21827,21075,21314,21610,20786,22070,20358,22357,20118,22416,20110,22246,20330,21894,20729,21432,21232,20940,21748,20504,22169,20210,22409,20124,22417,20276,22193,20639,21779,21136,21250,21649,20713,22066,20285,22309,20057,22355,20071,22212,20318,21902,20751,21466,21284,20978,21807,20534,22215,
20237,22435,20157,22423,20315,22170,20672,21717,21140,21160,21617,20627,22018,20228,22281,20034,22364,20079,22245,20352,21934,20804,21482,21348,20981,21878,20534,22281,20238,22470,20155,22399,20302,22091,20642,21620,21105,21088,21595,20594,22023,20226,22305,20055,22387,20118,22258,20413,21939,20888,
21482,21447,20965,21958,20498,22303,20188,22424,20104,22320,20260,22024,20617,21587,21098,21083,21603,20605,22036,20250,22321,20096,22415,20183,22289,20500,21948,20975,21444,21498,20888,21954,20411,22264,20118,22385,20059,22299,20236,22016,20609,21586,21101,21091,21626,20626,22087,20288,22392,20150,
22468,20241,22285,20545,21878,20994,21343,21493,20796,21942,20346,22254,20077,22372,20038,22282,20234,22007,20632,21598,21161,21120,21717,20659,22176,20311,22432,20160,22439,20244,22211,20544,21797,20991,21274,21484,20743,21920,20313,22223,20066,22354,20054,22295,20284,22047,20715,21636,21258,21128,
21791,20635,22201,20275,22416,20127,22404,20219,22166,20520,21744,20959,21226,21448,20716,21901,20316,22242,20101,22407,20114,22351,20361,22067,20794,21605,21320,21068,21831,20569,22219,20216,22405,20077,22361,20175,22106,20483,21700,20943,21218,21467,20743,21957,20360,22309,20151,22447,20169,22346,
20420,22025,20852,21545,21367,20996,21846,20494,22190,20149,22348,20029,22313,20151,22097,20492,21727,20986,21259,21531,20775,22016,20383,22346,20175,22461,20201,22335,20452,21981,20866,21466,21349,20906,21801,20424,22150,20113,22341,20026,22341,20177,22135,20542,21753,21049,21264,21601,20771,22085,
20378,22398,20168,22466,20187,22279,20426,21888,20830,21381,21317,20859,21794,20414,22170,20128,22372,20059,22362,20230,22143,20616,21752,21143,21251,21693,20739,22136,20327,22381,20112,22397,20137,22205,20390,21842,20815,21370,21322,20867,21810,20435,22188,20162,22395,20113,22391,20307,22163,20704,
21734,21211,21187,21712,20649,22107,20246,22337,20055,22369,20105,22195,20378,21843,20817,21375,21340,20882,21851,20463,22255,20205,22463,20166,22417,20355,22120,20731,21640,21211,21086,21698,20572,22095,20197,22327,20029,22357,20098,22184,20392,21846,20863,21396,21422,20913,21949,20487,22323,20216,
22465,20165,22358,20349,22037,20724,21565,21203,21029,21683,20534,22070,20178,22305,20035,22356,20134,22214,20464,21888,20960,21418,21511,20898,21997,20447,22322,20173,22434,20132,22318,20323,21991,20696,21517,21170,20995,21656,20526,22072,20201,22347,20085,22418,20205,22255,20543,21878,21028,21364,
21558,20826,22022,20381,22324,20117,22408,20084,22267,20282,21941,20669,21496,21173,21008,21701,20564,22143,20249,22406,20136,22434,20259,22226,20597,21821,21077,21294,21587,20751,22013,20308,22278,20061,22353,20051,22240,20278,21955,20702,21534,21235,21047,21768,20589,22193,20267,22429,20158,22434,
20285,22196,20617,21757,21071,21207,21551,20671,21966,20260,22255,20046,22370,20067,22280,20323,21990,20764,21548,21305,21041,21840,20576
]}

A.2.1 生成スクリプト(tools/gen_moon_table.py の全文)

外部ライブラリは使わず、Meeus『Astronomical Algorithms』第49章の式(ΔT補正つき)を実装している。出力は分に丸めた JST。

python3 tools/gen_moon_table.py     # src/moon_table.json を書き出す
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""新月・満月の時刻テーブルを JST で生成する。

Meeus "Astronomical Algorithms" 第49章 (Phases of the Moon) の式をそのまま実装した。
k が整数なら新月、k+0.5 なら満月。得られるのは TT なので ΔT を引いて UT に直し、
さらに +9時間して JST にする。

出力は src/moon_table.json:
  {"epoch": [1900,1,1,0,0], "step": [起点からの分, 次との差, ...]}
  step の 0,2,4,... 番目が新月、1,3,5,... 番目が満月(朔望は必ず交互に来る)。
"""
import json
import math
import pathlib

D2R = math.pi / 180.0
sin = lambda deg: math.sin(deg * D2R)


def mean_phase_jde(k):
    """平均朔望の JDE(TT)"""
    t = k / 1236.85
    return (2451550.09766 + 29.530588861 * k
            + 0.00015437 * t ** 2 - 0.000000150 * t ** 3 + 0.00000000073 * t ** 4)


# 追加補正 A1..A14 の係数(Meeus 表49.A の下、Additional corrections)
ADDITIONAL = [
    (0.000325, lambda k, t: 299.77 + 0.107408 * k - 0.009173 * t ** 2),
    (0.000165, lambda k, t: 251.88 + 0.016321 * k),
    (0.000164, lambda k, t: 251.83 + 26.651886 * k),
    (0.000126, lambda k, t: 349.42 + 36.412478 * k),
    (0.000110, lambda k, t: 84.66 + 18.206239 * k),
    (0.000062, lambda k, t: 141.74 + 53.303771 * k),
    (0.000060, lambda k, t: 207.14 + 2.453732 * k),
    (0.000056, lambda k, t: 154.84 + 7.306860 * k),
    (0.000047, lambda k, t: 34.52 + 27.261239 * k),
    (0.000042, lambda k, t: 207.19 + 0.121824 * k),
    (0.000040, lambda k, t: 291.34 + 1.844379 * k),
    (0.000037, lambda k, t: 161.72 + 24.198154 * k),
    (0.000035, lambda k, t: 239.56 + 25.513099 * k),
    (0.000023, lambda k, t: 331.55 + 3.592518 * k),
]


def phase_jde(k, full):
    """新月(full=False) / 満月(full=True) の JDE(TT)"""
    t = k / 1236.85
    jde = mean_phase_jde(k)
    e = 1 - 0.002516 * t - 0.0000074 * t ** 2
    m = 2.5534 + 29.10535670 * k - 0.0000014 * t ** 2 - 0.00000011 * t ** 3
    mp = (201.5643 + 385.81693528 * k + 0.0107582 * t ** 2
          + 0.00001238 * t ** 3 - 0.000000058 * t ** 4)
    f = (160.7108 + 390.67050284 * k - 0.0016118 * t ** 2
         - 0.00000227 * t ** 3 + 0.000000011 * t ** 4)
    om = 124.7746 - 1.56375588 * k + 0.0020672 * t ** 2 + 0.00000215 * t ** 3

    if not full:
        corr = (-0.40720 * sin(mp)
                + 0.17241 * e * sin(m)
                + 0.01608 * sin(2 * mp)
                + 0.01039 * sin(2 * f)
                + 0.00739 * e * sin(mp - m)
                - 0.00514 * e * sin(mp + m)
                + 0.00208 * e ** 2 * sin(2 * m)
                - 0.00111 * sin(mp - 2 * f)
                - 0.00057 * sin(mp + 2 * f)
                + 0.00056 * e * sin(2 * mp + m)
                - 0.00042 * sin(3 * mp)
                + 0.00042 * e * sin(m + 2 * f)
                + 0.00038 * e * sin(m - 2 * f)
                - 0.00024 * e * sin(2 * mp - m)
                - 0.00017 * sin(om)
                - 0.00007 * sin(mp + 2 * m)
                + 0.00004 * sin(2 * mp - 2 * f)
                + 0.00004 * sin(3 * m)
                + 0.00003 * sin(mp + m - 2 * f)
                + 0.00003 * sin(2 * mp + 2 * f)
                - 0.00003 * sin(mp + m + 2 * f)
                + 0.00003 * sin(mp - m + 2 * f)
                - 0.00002 * sin(mp - m - 2 * f)
                - 0.00002 * sin(3 * mp + m)
                + 0.00002 * sin(4 * mp))
    else:
        corr = (-0.40614 * sin(mp)
                + 0.17302 * e * sin(m)
                + 0.01614 * sin(2 * mp)
                + 0.01043 * sin(2 * f)
                + 0.00734 * e * sin(mp - m)
                - 0.00515 * e * sin(mp + m)
                + 0.00209 * e ** 2 * sin(2 * m)
                - 0.00111 * sin(mp - 2 * f)
                - 0.00057 * sin(mp + 2 * f)
                + 0.00056 * e * sin(2 * mp + m)
                - 0.00042 * sin(3 * mp)
                + 0.00042 * e * sin(m + 2 * f)
                + 0.00038 * e * sin(m - 2 * f)
                - 0.00024 * e * sin(2 * mp - m)
                - 0.00017 * sin(om)
                - 0.00007 * sin(mp + 2 * m)
                + 0.00004 * sin(2 * mp - 2 * f)
                + 0.00004 * sin(3 * m)
                + 0.00003 * sin(mp + m - 2 * f)
                + 0.00003 * sin(2 * mp + 2 * f)
                - 0.00003 * sin(mp + m + 2 * f)
                + 0.00003 * sin(mp - m + 2 * f)
                - 0.00002 * sin(mp - m - 2 * f)
                - 0.00002 * sin(3 * mp + m)
                + 0.00002 * sin(4 * mp))
    for amp, ang in ADDITIONAL:
        corr += amp * sin(ang(k, t))
    return jde + corr


def delta_t_seconds(year, month):
    """TT - UT の近似(Espenak & Meeus の多項式。1900年以降だけ使う)"""
    y = year + (month - 0.5) / 12
    if 1900 <= y < 1920:
        t = y - 1900
        return (-2.79 + 1.494119 * t - 0.0598939 * t ** 2
                + 0.0061966 * t ** 3 - 0.000197 * t ** 4)
    if 1920 <= y < 1941:
        t = y - 1920
        return 21.20 + 0.84493 * t - 0.076100 * t ** 2 + 0.0020936 * t ** 3
    if 1941 <= y < 1961:
        t = y - 1950
        return 29.07 + 0.407 * t - t ** 2 / 233 + t ** 3 / 2547
    if 1961 <= y < 1986:
        t = y - 1975
        return 45.45 + 1.067 * t - t ** 2 / 260 - t ** 3 / 718
    if 1986 <= y < 2005:
        t = y - 2000
        return (63.86 + 0.3345 * t - 0.060374 * t ** 2 + 0.0017275 * t ** 3
                + 0.000651814 * t ** 4 + 0.00002373599 * t ** 5)
    if 2005 <= y < 2050:
        t = y - 2000
        return 62.92 + 0.32217 * t + 0.005589 * t ** 2
    if 2050 <= y <= 2150:
        return -20 + 32 * ((y - 1820) / 100) ** 2 - 0.5628 * (2150 - y)
    t = (y - 1820) / 100
    return -20 + 32 * t ** 2


def jd_to_ymdhm(jd):
    """ユリウス日(UT) -> (年,月,日,時,分)。秒は四捨五入して分に丸める。"""
    jd += 0.5
    z = math.floor(jd)
    f = jd - z
    if z < 2299161:
        a = z
    else:
        alpha = math.floor((z - 1867216.25) / 36524.25)
        a = z + 1 + alpha - math.floor(alpha / 4)
    b = a + 1524
    c = math.floor((b - 122.1) / 365.25)
    d = math.floor(365.25 * c)
    e = math.floor((b - d) / 30.6001)
    day_f = b - d - math.floor(30.6001 * e) + f
    day = int(math.floor(day_f))
    frac = day_f - day
    month = int(e - 1 if e < 14 else e - 13)
    year = int(c - 4716 if month > 2 else c - 4715)
    total_min = int(round(frac * 24 * 60))
    # 分に丸めた結果 24:00 になったら翌日へ送る
    hh, mm = divmod(total_min, 60)
    if hh >= 24:
        hh -= 24
        day += 1
        dim = [31, 29 if (year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)) else 28,
               31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1]
        if day > dim:
            day = 1
            month += 1
            if month > 12:
                month = 1
                year += 1
    return year, month, day, hh, mm


def jdn(y, m, d):
    a = (14 - m) // 12
    y2 = y + 4800 - a
    m2 = m + 12 * a - 3
    return d + (153 * m2 + 2) // 5 + 365 * y2 + y2 // 4 - y2 // 100 + y2 // 400 - 32045


def phase_jst(k, full):
    """JST の (年,月,日,時,分) を返す"""
    jde = phase_jde(k, full)
    y, mo = jd_to_ymdhm(jde)[:2]
    ut = jde - delta_t_seconds(y, mo) / 86400.0
    return jd_to_ymdhm(ut + 9 / 24.0)


if __name__ == '__main__':
    Y0, Y1 = 1900, 2100
    # k=0 は 2000-01-06 の新月。必要な範囲を十分カバーする k を回す
    k_start = int((Y0 - 2000) * 12.3685) - 3
    k_end = int((Y1 + 1 - 2000) * 12.3685) + 3

    events = []   # (JSTの分通し番号, 種別)
    epoch = (1900, 1, 1, 0, 0)
    ep_min = jdn(*epoch[:3]) * 1440
    for k in range(k_start, k_end + 1):
        for full in (False, True):
            y, mo, d, hh, mm = phase_jst(k + (0.5 if full else 0), full)
            if not (Y0 <= y <= Y1):
                continue
            minutes = jdn(y, mo, d) * 1440 + hh * 60 + mm - ep_min
            events.append((minutes, 1 if full else 0))
    events.sort()

    # 新月と満月が必ず交互に並んでいることを確認(前提が崩れていたら気付けるように)
    for i in range(1, len(events)):
        if events[i][1] == events[i - 1][1]:
            raise SystemExit(f'朔望が交互になっていません: index {i} 付近')
    if events[0][1] != 0:
        raise SystemExit('先頭が新月ではありません(デコード側の前提が崩れます)')

    # 差分エンコード(先頭は絶対値、以降は前との差)
    step = [events[0][0]] + [events[i][0] - events[i - 1][0] for i in range(1, len(events))]
    out = {'epoch': list(epoch), 'step': step}
    dest = pathlib.Path(__file__).resolve().parent.parent / 'src' / 'moon_table.json'
    dest.write_text(json.dumps(out, separators=(',', ':')), encoding='utf-8')

    print(f'{len(events)} 件(新月 {sum(1 for e in events if e[1]==0)} / 満月 {sum(1 for e in events if e[1]==1)})')
    print(f'{dest.name}: {dest.stat().st_size} bytes')
    print('サンプル(2026年):')
    for minutes, kind in events:
        y, mo, d, hh, mm = jd_to_ymdhm((ep_min + minutes) / 1440.0 - 0.5 + 0.5)[:5] if False else (None,)*5
        break
    # 確認用に2026年分だけ再計算して表示
    for k in range(int((2026 - 2000) * 12.3685) - 1, int((2027 - 2000) * 12.3685) + 1):
        for full in (False, True):
            y, mo, d, hh, mm = phase_jst(k + (0.5 if full else 0), full)
            if y == 2026 and mo <= 3:
                print(f'  {"満月" if full else "新月"} {y}-{mo:02d}-{d:02d} {hh:02d}:{mm:02d} JST')

A.3 祝日テーブル holiday_table.json

形式  { "from":1948, "to":2100, "names":[祝日名…], "years":{ "2026":[[通日, namesの番号], …], … } }
      通日=その年の1月1日を1とした日数。1948-07-20(祝日法の施行)より前は入れない

引き方は 算命学ロジック完全仕様 の §18.2。

{"from":1948,"to":2100,
"names":["秋分の日","文化の日","勤労感謝の日","元日","成人の日","春分の日","天皇誕生日","憲法記念日","国民の休日","こどもの日","皇太子・明仁親王の結婚の儀","敬老の日","体育の日","建国記念の日","建国記念の日 振替休日","天皇誕生日 振替休日","秋分の日 振替休日","こどもの日 振替休日","敬老の日 振替休日","文化の日 振替休日","勤労感謝の日 振替休日","体育の日 振替休日","元日 振替休日","成人の日 振替休日","憲法記念日 振替休日","春分の日 振替休日","昭和天皇の大喪の礼","みどりの日","みどりの日 振替休日","即位の礼正殿の儀","皇太子・皇太子徳仁親王の結婚の儀","海の日","海の日 振替休日","昭和の日","昭和の日 振替休日","山の日","天皇の即位の日","山の日 振替休日","即位礼正殿の儀","スポーツの日"],
"years":{
"1948":[[267,0],[308,1],[328,2]],
"1949":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[266,0],[307,1],[327,2]],
"1950":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[266,0],[307,1],[327,2]],
"1951":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[267,0],[307,1],[327,2]],
"1952":[[1,3],[15,4],[81,5],[120,6],[124,7],[126,9],[267,0],[308,1],[328,2]],
"1953":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[266,0],[307,1],[327,2]],
"1954":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[266,0],[307,1],[327,2]],
"1955":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[267,0],[307,1],[327,2]],
"1956":[[1,3],[15,4],[81,5],[120,6],[124,7],[125,8],[126,9],[267,0],[308,1],[328,2]],
"1957":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[266,0],[307,1],[327,2]],
"1958":[[1,3],[15,4],[80,5],[119,6],[123,7],[125,9],[266,0],[307,1],[327,2]],
"1959":[[1,3],[15,4],[80,5],[100,10],[119,6],[123,7],[124,8],[125,9],[267,0],[307,1],[327,2]],
"1960":[[1,3],[15,4],[80,5],[120,6],[124,7],[125,8],[126,9],[267,0],[308,1],[328,2]],
"1961":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[266,0],[307,1],[327,2]],
"1962":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[266,0],[307,1],[327,2]],
"1963":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[267,0],[307,1],[327,2]],
"1964":[[1,3],[15,4],[80,5],[120,6],[124,7],[125,8],[126,9],[267,0],[308,1],[328,2]],
"1965":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[266,0],[307,1],[327,2]],
"1966":[[1,3],[15,4],[80,5],[119,6],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2]],
"1967":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,8],[125,9],[258,11],[267,0],[283,12],[307,1],[327,2]],
"1968":[[1,3],[15,4],[42,13],[80,5],[120,6],[124,7],[125,8],[126,9],[259,11],[267,0],[284,12],[308,1],[328,2]],
"1969":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2]],
"1970":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2]],
"1971":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,8],[125,9],[258,11],[267,0],[283,12],[307,1],[327,2]],
"1972":[[1,3],[15,4],[42,13],[80,5],[120,6],[124,7],[125,8],[126,9],[259,11],[267,0],[284,12],[308,1],[328,2]],
"1973":[[1,3],[15,4],[42,13],[43,14],[80,5],[119,6],[120,15],[123,7],[124,8],[125,9],[258,11],[266,0],[267,16],[283,12],[307,1],[327,2]],
"1974":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,8],[125,9],[126,17],[258,11],[259,18],[266,0],[283,12],[307,1],[308,19],[327,2]],
"1975":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[125,9],[258,11],[267,0],[283,12],[307,1],[327,2],[328,20]],
"1976":[[1,3],[15,4],[42,13],[80,5],[120,6],[124,7],[125,8],[126,9],[259,11],[267,0],[284,12],[285,21],[308,1],[328,2]],
"1977":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2]],
"1978":[[1,3],[2,22],[15,4],[16,23],[42,13],[80,5],[119,6],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2]],
"1979":[[1,3],[15,4],[42,13],[43,14],[80,5],[119,6],[120,15],[123,7],[124,8],[125,9],[258,11],[267,0],[283,12],[307,1],[327,2]],
"1980":[[1,3],[15,4],[42,13],[80,5],[120,6],[124,7],[126,9],[259,11],[267,0],[284,12],[308,1],[328,2],[329,20]],
"1981":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,24],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2]],
"1982":[[1,3],[15,4],[42,13],[80,5],[81,25],[119,6],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[284,21],[307,1],[327,2]],
"1983":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2]],
"1984":[[1,3],[2,22],[15,4],[16,23],[42,13],[80,5],[120,6],[121,15],[124,7],[125,8],[126,9],[259,11],[267,0],[268,16],[284,12],[308,1],[328,2]],
"1985":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,8],[125,9],[126,17],[258,11],[259,18],[266,0],[283,12],[307,1],[308,19],[327,2]],
"1986":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2],[328,20]],
"1987":[[1,3],[15,4],[42,13],[80,5],[119,6],[123,7],[124,24],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2]],
"1988":[[1,3],[15,4],[42,13],[80,5],[81,25],[120,6],[124,7],[125,8],[126,9],[259,11],[267,0],[284,12],[308,1],[328,2]],
"1989":[[1,3],[2,22],[15,4],[16,23],[42,13],[55,26],[80,5],[119,27],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2],[357,6]],
"1990":[[1,3],[15,4],[42,13],[43,14],[80,5],[119,27],[120,28],[123,7],[124,8],[125,9],[258,11],[266,0],[267,16],[283,12],[307,1],[316,29],[327,2],[357,6],[358,15]],
"1991":[[1,3],[15,4],[42,13],[80,5],[119,27],[123,7],[124,8],[125,9],[126,17],[258,11],[259,18],[266,0],[283,12],[307,1],[308,19],[327,2],[357,6]],
"1992":[[1,3],[15,4],[42,13],[80,5],[120,27],[124,7],[125,24],[126,9],[259,11],[267,0],[284,12],[308,1],[328,2],[358,6]],
"1993":[[1,3],[15,4],[42,13],[79,5],[119,27],[123,7],[124,8],[125,9],[160,30],[258,11],[266,0],[283,12],[284,21],[307,1],[327,2],[357,6]],
"1994":[[1,3],[15,4],[42,13],[80,5],[119,27],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2],[357,6]],
"1995":[[1,3],[2,22],[15,4],[16,23],[42,13],[80,5],[119,27],[123,7],[124,8],[125,9],[258,11],[266,0],[283,12],[307,1],[327,2],[357,6]],
"1996":[[1,3],[15,4],[42,13],[43,14],[80,5],[120,27],[124,7],[125,8],[126,9],[127,17],[202,31],[259,11],[260,18],[267,0],[284,12],[308,1],[309,19],[328,2],[358,6]],
"1997":[[1,3],[15,4],[42,13],[79,5],[119,27],[123,7],[125,9],[201,31],[202,32],[258,11],[266,0],[283,12],[307,1],[327,2],[328,20],[357,6]],
"1998":[[1,3],[15,4],[42,13],[80,5],[119,27],[123,7],[124,24],[125,9],[201,31],[258,11],[266,0],[283,12],[307,1],[327,2],[357,6]],
"1999":[[1,3],[15,4],[42,13],[80,5],[81,25],[119,27],[123,7],[124,8],[125,9],[201,31],[258,11],[266,0],[283,12],[284,21],[307,1],[327,2],[357,6]],
"2000":[[1,3],[10,4],[42,13],[80,5],[120,27],[124,7],[125,8],[126,9],[202,31],[259,11],[267,0],[283,12],[308,1],[328,2],[358,6]],
"2001":[[1,3],[8,4],[42,13],[43,14],[79,5],[119,27],[120,28],[123,7],[124,8],[125,9],[201,31],[258,11],[266,0],[267,16],[281,12],[307,1],[327,2],[357,6],[358,15]],
"2002":[[1,3],[14,4],[42,13],[80,5],[119,27],[123,7],[124,8],[125,9],[126,17],[201,31],[258,11],[259,18],[266,0],[287,12],[307,1],[308,19],[327,2],[357,6]],
"2003":[[1,3],[13,4],[42,13],[80,5],[119,27],[123,7],[125,9],[202,31],[258,11],[266,0],[286,12],[307,1],[327,2],[328,20],[357,6]],
"2004":[[1,3],[12,4],[42,13],[80,5],[120,27],[124,7],[125,8],[126,9],[201,31],[264,11],[267,0],[285,12],[308,1],[328,2],[358,6]],
"2005":[[1,3],[10,4],[42,13],[79,5],[80,25],[119,27],[123,7],[124,8],[125,9],[199,31],[262,11],[266,0],[283,12],[307,1],[327,2],[357,6]],
"2006":[[1,3],[2,22],[9,4],[42,13],[80,5],[119,27],[123,7],[124,8],[125,9],[198,31],[261,11],[266,0],[282,12],[307,1],[327,2],[357,6]],
"2007":[[1,3],[8,4],[42,13],[43,14],[80,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[260,11],[266,0],[267,16],[281,12],[307,1],[327,2],[357,6],[358,15]],
"2008":[[1,3],[14,4],[42,13],[80,5],[120,33],[124,7],[125,27],[126,9],[127,28],[203,31],[259,11],[267,0],[287,12],[308,1],[328,2],[329,20],[358,6]],
"2009":[[1,3],[12,4],[42,13],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[264,11],[265,8],[266,0],[285,12],[307,1],[327,2],[357,6]],
"2010":[[1,3],[11,4],[42,13],[80,5],[81,25],[119,33],[123,7],[124,27],[125,9],[200,31],[263,11],[266,0],[284,12],[307,1],[327,2],[357,6]],
"2011":[[1,3],[10,4],[42,13],[80,5],[119,33],[123,7],[124,27],[125,9],[199,31],[262,11],[266,0],[283,12],[307,1],[327,2],[357,6]],
"2012":[[1,3],[2,22],[9,4],[42,13],[80,5],[120,33],[121,34],[124,7],[125,27],[126,9],[198,31],[261,11],[266,0],[282,12],[308,1],[328,2],[358,6],[359,15]],
"2013":[[1,3],[14,4],[42,13],[79,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[259,11],[266,0],[287,12],[307,1],[308,19],[327,2],[357,6]],
"2014":[[1,3],[13,4],[42,13],[80,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[258,11],[266,0],[286,12],[307,1],[327,2],[328,20],[357,6]],
"2015":[[1,3],[12,4],[42,13],[80,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[264,11],[265,8],[266,0],[285,12],[307,1],[327,2],[357,6]],
"2016":[[1,3],[11,4],[42,13],[80,5],[81,25],[120,33],[124,7],[125,27],[126,9],[200,31],[224,35],[263,11],[266,0],[284,12],[308,1],[328,2],[358,6]],
"2017":[[1,3],[2,22],[9,4],[42,13],[79,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[266,0],[282,12],[307,1],[327,2],[357,6]],
"2018":[[1,3],[8,4],[42,13],[43,14],[80,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[266,0],[267,16],[281,12],[307,1],[327,2],[357,6],[358,15]],
"2019":[[1,3],[14,4],[42,13],[80,5],[119,33],[120,8],[121,36],[122,8],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[266,0],[287,12],[295,38],[307,1],[308,19],[327,2]],
"2020":[[1,3],[13,4],[42,13],[54,6],[55,15],[80,5],[120,33],[124,7],[125,27],[126,9],[127,24],[205,31],[206,39],[223,35],[265,11],[266,0],[308,1],[328,2]],
"2021":[[1,3],[11,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[203,31],[204,39],[220,35],[221,37],[263,11],[266,0],[307,1],[327,2]],
"2022":[[1,3],[10,4],[42,13],[54,6],[80,5],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[266,0],[283,39],[307,1],[327,2]],
"2023":[[1,3],[2,22],[9,4],[42,13],[54,6],[80,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[266,0],[282,39],[307,1],[327,2]],
"2024":[[1,3],[8,4],[42,13],[43,14],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[127,17],[197,31],[224,35],[225,37],[260,11],[266,0],[267,16],[288,39],[308,1],[309,19],[328,2]],
"2025":[[1,3],[13,4],[42,13],[54,6],[55,15],[79,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[266,0],[286,39],[307,1],[327,2],[328,20]],
"2026":[[1,3],[12,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,8],[266,0],[285,39],[307,1],[327,2]],
"2027":[[1,3],[11,4],[42,13],[54,6],[80,5],[81,25],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[266,0],[284,39],[307,1],[327,2]],
"2028":[[1,3],[10,4],[42,13],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[199,31],[224,35],[262,11],[266,0],[283,39],[308,1],[328,2]],
"2029":[[1,3],[8,4],[42,13],[43,14],[54,6],[79,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[266,0],[267,16],[281,39],[307,1],[327,2]],
"2030":[[1,3],[14,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[266,0],[287,39],[307,1],[308,19],[327,2]],
"2031":[[1,3],[13,4],[42,13],[54,6],[55,15],[80,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[266,0],[286,39],[307,1],[327,2],[328,20]],
"2032":[[1,3],[12,4],[42,13],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[201,31],[224,35],[264,11],[265,8],[266,0],[285,39],[308,1],[328,2]],
"2033":[[1,3],[10,4],[42,13],[54,6],[79,5],[80,25],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[266,0],[283,39],[307,1],[327,2]],
"2034":[[1,3],[2,22],[9,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[266,0],[282,39],[307,1],[327,2]],
"2035":[[1,3],[8,4],[42,13],[43,14],[54,6],[80,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[266,0],[267,16],[281,39],[307,1],[327,2]],
"2036":[[1,3],[14,4],[42,13],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[127,28],[203,31],[224,35],[259,11],[266,0],[287,39],[308,1],[328,2],[329,20]],
"2037":[[1,3],[12,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,8],[266,0],[285,39],[307,1],[327,2]],
"2038":[[1,3],[11,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[266,0],[284,39],[307,1],[327,2]],
"2039":[[1,3],[10,4],[42,13],[54,6],[80,5],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[266,0],[283,39],[307,1],[327,2]],
"2040":[[1,3],[2,22],[9,4],[42,13],[54,6],[80,5],[120,33],[121,34],[124,7],[125,27],[126,9],[198,31],[224,35],[261,11],[266,0],[282,39],[308,1],[328,2]],
"2041":[[1,3],[14,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[266,0],[287,39],[307,1],[308,19],[327,2]],
"2042":[[1,3],[13,4],[42,13],[54,6],[55,15],[79,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[266,0],[286,39],[307,1],[327,2],[328,20]],
"2043":[[1,3],[12,4],[42,13],[54,6],[80,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,8],[266,0],[285,39],[307,1],[327,2]],
"2044":[[1,3],[11,4],[42,13],[54,6],[80,5],[81,25],[120,33],[124,7],[125,27],[126,9],[200,31],[224,35],[263,11],[266,0],[284,39],[308,1],[328,2]],
"2045":[[1,3],[2,22],[9,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[265,0],[282,39],[307,1],[327,2]],
"2046":[[1,3],[8,4],[42,13],[43,14],[54,6],[79,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[266,0],[267,16],[281,39],[307,1],[327,2]],
"2047":[[1,3],[14,4],[42,13],[54,6],[80,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[266,0],[287,39],[307,1],[308,19],[327,2]],
"2048":[[1,3],[13,4],[42,13],[54,6],[55,15],[80,5],[120,33],[124,7],[125,27],[126,9],[127,24],[202,31],[224,35],[265,11],[266,0],[286,39],[308,1],[328,2]],
"2049":[[1,3],[11,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[264,8],[265,0],[284,39],[307,1],[327,2]],
"2050":[[1,3],[10,4],[42,13],[54,6],[79,5],[80,25],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[266,0],[283,39],[307,1],[327,2]],
"2051":[[1,3],[2,22],[9,4],[42,13],[54,6],[80,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[266,0],[282,39],[307,1],[327,2]],
"2052":[[1,3],[8,4],[42,13],[43,14],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[127,17],[197,31],[224,35],[225,37],[260,11],[266,0],[267,16],[288,39],[308,1],[309,19],[328,2]],
"2053":[[1,3],[13,4],[42,13],[54,6],[55,15],[79,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[265,0],[286,39],[307,1],[327,2],[328,20]],
"2054":[[1,3],[12,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,8],[266,0],[285,39],[307,1],[327,2]],
"2055":[[1,3],[11,4],[42,13],[54,6],[80,5],[81,25],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[266,0],[284,39],[307,1],[327,2]],
"2056":[[1,3],[10,4],[42,13],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[199,31],[224,35],[262,11],[266,0],[283,39],[308,1],[328,2]],
"2057":[[1,3],[8,4],[42,13],[43,14],[54,6],[79,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[265,0],[281,39],[307,1],[327,2]],
"2058":[[1,3],[14,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[266,0],[287,39],[307,1],[308,19],[327,2]],
"2059":[[1,3],[13,4],[42,13],[54,6],[55,15],[79,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[266,0],[286,39],[307,1],[327,2],[328,20]],
"2060":[[1,3],[12,4],[42,13],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[201,31],[224,35],[264,11],[265,8],[266,0],[285,39],[308,1],[328,2]],
"2061":[[1,3],[10,4],[42,13],[54,6],[79,5],[80,25],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[265,0],[283,39],[307,1],[327,2]],
"2062":[[1,3],[2,22],[9,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[266,0],[282,39],[307,1],[327,2]],
"2063":[[1,3],[8,4],[42,13],[43,14],[54,6],[79,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[266,0],[267,16],[281,39],[307,1],[327,2]],
"2064":[[1,3],[14,4],[42,13],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[127,28],[203,31],[224,35],[259,11],[266,0],[287,39],[308,1],[328,2],[329,20]],
"2065":[[1,3],[12,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,0],[285,39],[307,1],[327,2]],
"2066":[[1,3],[11,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[266,0],[284,39],[307,1],[327,2]],
"2067":[[1,3],[10,4],[42,13],[54,6],[79,5],[80,25],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[266,0],[283,39],[307,1],[327,2]],
"2068":[[1,3],[2,22],[9,4],[42,13],[54,6],[80,5],[120,33],[121,34],[124,7],[125,27],[126,9],[198,31],[224,35],[261,11],[266,0],[282,39],[308,1],[328,2]],
"2069":[[1,3],[14,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[265,0],[266,16],[287,39],[307,1],[308,19],[327,2]],
"2070":[[1,3],[13,4],[42,13],[54,6],[55,15],[79,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[266,0],[286,39],[307,1],[327,2],[328,20]],
"2071":[[1,3],[12,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,8],[266,0],[285,39],[307,1],[327,2]],
"2072":[[1,3],[11,4],[42,13],[54,6],[80,5],[81,25],[120,33],[124,7],[125,27],[126,9],[200,31],[224,35],[263,11],[266,0],[284,39],[308,1],[328,2]],
"2073":[[1,3],[2,22],[9,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[265,0],[282,39],[307,1],[327,2]],
"2074":[[1,3],[8,4],[42,13],[43,14],[54,6],[79,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[266,0],[267,16],[281,39],[307,1],[327,2]],
"2075":[[1,3],[14,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[266,0],[287,39],[307,1],[308,19],[327,2]],
"2076":[[1,3],[13,4],[42,13],[54,6],[55,15],[80,5],[120,33],[124,7],[125,27],[126,9],[127,24],[202,31],[224,35],[265,11],[266,0],[286,39],[308,1],[328,2]],
"2077":[[1,3],[11,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[264,8],[265,0],[284,39],[307,1],[327,2]],
"2078":[[1,3],[10,4],[42,13],[54,6],[79,5],[80,25],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[265,0],[283,39],[307,1],[327,2]],
"2079":[[1,3],[2,22],[9,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[266,0],[282,39],[307,1],[327,2]],
"2080":[[1,3],[8,4],[42,13],[43,14],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[127,17],[197,31],[224,35],[225,37],[260,11],[266,0],[267,16],[288,39],[308,1],[309,19],[328,2]],
"2081":[[1,3],[13,4],[42,13],[54,6],[55,15],[79,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[265,0],[286,39],[307,1],[327,2],[328,20]],
"2082":[[1,3],[12,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,0],[285,39],[307,1],[327,2]],
"2083":[[1,3],[11,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[266,0],[284,39],[307,1],[327,2]],
"2084":[[1,3],[10,4],[42,13],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[199,31],[224,35],[262,11],[266,0],[283,39],[308,1],[328,2]],
"2085":[[1,3],[8,4],[42,13],[43,14],[54,6],[79,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[265,0],[281,39],[307,1],[327,2]],
"2086":[[1,3],[14,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[265,0],[266,16],[287,39],[307,1],[308,19],[327,2]],
"2087":[[1,3],[13,4],[42,13],[54,6],[55,15],[79,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[266,0],[286,39],[307,1],[327,2],[328,20]],
"2088":[[1,3],[12,4],[42,13],[54,6],[80,5],[120,33],[124,7],[125,27],[126,9],[201,31],[224,35],[264,11],[265,8],[266,0],[285,39],[308,1],[328,2]],
"2089":[[1,3],[10,4],[42,13],[54,6],[79,5],[80,25],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[265,0],[283,39],[307,1],[327,2]],
"2090":[[1,3],[2,22],[9,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[198,31],[223,35],[261,11],[265,0],[282,39],[307,1],[327,2]],
"2091":[[1,3],[8,4],[42,13],[43,14],[54,6],[79,5],[119,33],[120,34],[123,7],[124,27],[125,9],[197,31],[223,35],[260,11],[266,0],[267,16],[281,39],[307,1],[327,2]],
"2092":[[1,3],[14,4],[42,13],[54,6],[79,5],[120,33],[124,7],[125,27],[126,9],[127,28],[203,31],[224,35],[259,11],[266,0],[287,39],[308,1],[328,2],[329,20]],
"2093":[[1,3],[12,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,0],[285,39],[307,1],[327,2]],
"2094":[[1,3],[11,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[264,8],[265,0],[284,39],[307,1],[327,2]],
"2095":[[1,3],[10,4],[42,13],[54,6],[79,5],[80,25],[119,33],[123,7],[124,27],[125,9],[199,31],[223,35],[262,11],[266,0],[283,39],[307,1],[327,2]],
"2096":[[1,3],[2,22],[9,4],[42,13],[54,6],[79,5],[120,33],[121,34],[124,7],[125,27],[126,9],[198,31],[224,35],[261,11],[266,0],[282,39],[308,1],[328,2]],
"2097":[[1,3],[14,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,17],[196,31],[223,35],[224,37],[259,11],[265,0],[266,16],[287,39],[307,1],[308,19],[327,2]],
"2098":[[1,3],[13,4],[42,13],[54,6],[55,15],[79,5],[119,33],[123,7],[124,27],[125,9],[126,28],[202,31],[223,35],[258,11],[265,0],[286,39],[307,1],[327,2],[328,20]],
"2099":[[1,3],[12,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[126,24],[201,31],[223,35],[264,11],[265,8],[266,0],[285,39],[307,1],[327,2]],
"2100":[[1,3],[11,4],[42,13],[54,6],[79,5],[119,33],[123,7],[124,27],[125,9],[200,31],[223,35],[263,11],[266,0],[284,39],[307,1],[327,2]]
}}

A.3.1 生成スクリプト(tools/gen_holiday_table.py の全文)

pip install jpholiday==1.0.3
python3 tools/gen_holiday_table.py   # src/holiday_table.json を書き出す

names の並びは jpholiday.year_holidays(y) が返す順に、初めて出た名前から番号を振った結果。名前の文字列さえ合っていれば、番号の割り振りが違っても holiday() の戻り値は同じ。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""日本の祝日テーブルを作る。

祝日法(1948年7月20日施行)以降を対象にする。それより前の年には祝日を入れない。
振替休日・国民の休日・一度きりの祝日(即位の礼など)も jpholiday が面倒を見てくれる。

春分の日・秋分の日は天体の運行で決まり、正式には前年2月の官報で告示される。
先の年ぶんは計算による見込みなので、数十年先は1日ずれることがありうる。
この点は画面にも注意書きとして出している。

出力は src/holiday_table.json:
  {"from": 1948, "to": 2100, "names": ["元日", ...],
   "years": {"2026": [[1, 0], [12, 1], ...]}}
  年ごとに [その年の通日(1月1日=1), names の番号] の並び。
"""
import json
import pathlib
import datetime
import jpholiday

FROM_YEAR = 1948          # 祝日法の施行年
TO_YEAR = 2100            # 節入りテーブルに合わせる

ROOT = pathlib.Path(__file__).resolve().parent.parent
OUT = ROOT / 'src' / 'holiday_table.json'

names = []
name_index = {}
years = {}

for y in range(FROM_YEAR, TO_YEAR + 1):
    days = []
    for d, name in jpholiday.year_holidays(y):
        # 1948-07-20 の施行前は祝日として扱わない
        if d < datetime.date(1948, 7, 20):
            continue
        if name not in name_index:
            name_index[name] = len(names)
            names.append(name)
        doy = (d - datetime.date(y, 1, 1)).days + 1
        days.append([doy, name_index[name]])
    days.sort()
    if days:
        years[str(y)] = days

table = {'from': FROM_YEAR, 'to': TO_YEAR, 'names': names, 'years': years}
OUT.write_text(json.dumps(table, ensure_ascii=False, separators=(',', ':')), encoding='utf-8')

total = sum(len(v) for v in years.values())
print('%s を書きました' % OUT.name)
print('  %d〜%d年 / %d件 / 名前 %d種 / %d bytes'
      % (FROM_YEAR, TO_YEAR, total, len(names), OUT.stat().st_size))
print('  名前:', '、'.join(names))
先の年の春分・秋分

春分の日・秋分の日は天体の運行で決まり、正式には前年2月の官報で告示される。先の年は計算による見込みで、数十年先は1日ずれることがありうる。

Share Note for Obsidian 🌓