zakuro 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +30 -160
  3. data/VERSION +1 -1
  4. data/doc/condition.md +36 -0
  5. data/doc/dropped_date.md +41 -0
  6. data/doc/expection.md +108 -0
  7. data/doc/usage.md +120 -0
  8. data/doc/vanished_date.md +86 -0
  9. data/doc/version/daien.md +163 -0
  10. data/doc/version/genka.md +116 -0
  11. data/doc/version/gihou.md +172 -0
  12. data/doc/version/section/common_post_process.md +60 -0
  13. data/doc/version/section/common_pre_process.md +185 -0
  14. data/doc/version/section/const.md +45 -0
  15. data/doc/version/section/decimal.md +101 -0
  16. data/doc/version/section/lunisolar_calendar.md +55 -0
  17. data/doc/version/section/senmyou_november_1st.md +41 -0
  18. data/{lib/zakuro/version/senmyou/README.md → doc/version/senmyou.md} +15 -168
  19. data/lib/zakuro/calculation/cycle/abstract_remainder.rb +58 -0
  20. data/lib/zakuro/calculation/monthly/first_day.rb +9 -1
  21. data/lib/zakuro/calculation/option/vanished_date/abstract_parameter.rb +40 -0
  22. data/lib/zakuro/calculation/option/vanished_date/location.rb +84 -0
  23. data/lib/zakuro/calculation/range/medieval_annual_range.rb +5 -3
  24. data/lib/zakuro/calculation/range/transfer/gengou_scroller.rb +1 -0
  25. data/lib/zakuro/calculation/stella/lunar/abstract_location.rb +6 -2
  26. data/lib/zakuro/calculation/stella/lunar/choukei_value.rb +14 -0
  27. data/lib/zakuro/calculation/summary/internal/option.rb +59 -4
  28. data/lib/zakuro/context/option.rb +17 -0
  29. data/lib/zakuro/context/version_class_resolver.rb +17 -1
  30. data/lib/zakuro/result/data/option/vanished_date/calculation.rb +45 -0
  31. data/lib/zakuro/result/data/option/vanished_date/option.rb +47 -0
  32. data/lib/zakuro/result/data/single_day.rb +2 -0
  33. data/lib/zakuro/version/daien/const/number.rb +2 -0
  34. data/lib/zakuro/version/daien/const/remainder.rb +7 -2
  35. data/lib/zakuro/version/daien/cycle/remainder.rb +38 -20
  36. data/lib/zakuro/version/daien/monthly/lunar_phase.rb +2 -4
  37. data/lib/zakuro/version/daien/option/dropped_date/parameter.rb +5 -3
  38. data/lib/zakuro/version/daien/option/vanished_date/parameter.rb +33 -0
  39. data/lib/zakuro/version/daien/stella/lunar/location.rb +5 -8
  40. data/lib/zakuro/version/genka/cycle/remainder.rb +6 -2
  41. data/lib/zakuro/version/genka/monthly/lunar_phase.rb +14 -3
  42. data/lib/zakuro/version/genka/option/vanished_date/parameter.rb +31 -0
  43. data/lib/zakuro/version/gihou/const/remainder.rb +1 -5
  44. data/lib/zakuro/version/gihou/cycle/remainder.rb +0 -26
  45. data/lib/zakuro/version/gihou/monthly/lunar_phase.rb +2 -4
  46. data/lib/zakuro/version/gihou/option/vanished_date/parameter.rb +31 -0
  47. data/lib/zakuro/version/gihou/stella/lunar/location.rb +5 -8
  48. data/lib/zakuro/version/senmyou/const/number.rb +3 -1
  49. data/lib/zakuro/version/senmyou/const/remainder.rb +4 -2
  50. data/lib/zakuro/version/senmyou/cycle/remainder.rb +17 -34
  51. data/lib/zakuro/version/senmyou/monthly/lunar_phase.rb +5 -5
  52. data/lib/zakuro/version/senmyou/option/vanished_date/parameter.rb +33 -0
  53. data/lib/zakuro/version/senmyou/stella/lunar/location.rb +6 -8
  54. data/lib/zakuro/version/senmyou/stella/lunar/value.rb +9 -0
  55. metadata +24 -3
@@ -0,0 +1,86 @@
1
+ # 滅日
2
+
3
+ 没日を端的に説明すると、1朔望月(29.5..日)を30日で表わすために、一定の法則で `不足した日` として配置された日である
4
+
5
+ 経朔(平均値で求めた月初日)をもとに計算を行う
6
+
7
+ ## 計算
8
+ ### 宣明暦
9
+ 「長慶宣明暦算法」に従う
10
+
11
+ 下記は該当箇所の引用と、それに対応する計算を示している
12
+
13
+ ```
14
+ ◯滅日ヲ求ルノ術
15
+ ```
16
+
17
+ ```
18
+ 経朔之小余朔虚分ノ三千九百四十三ヨリ巳下ハ者之ヲ置キテ三十ヲ以テ之ヲ乗シ朔虚分ヲ以テ之ヲ除シ商ヲ以テ日ト為ス経朔ノ大余ヲ加フ甲子ヨリ命スル事右ノ如シ
19
+ ```
20
+
21
+ * 滅日あり
22
+ * 経朔の小余 < 3943
23
+ * 計算方法
24
+ * (経朔の小余 * 30) / 3943 = 大余(正数) ... A
25
+ * (経朔の小余 * 30) % 3943 = 小余 ... B
26
+ * 滅余
27
+ * (A + 経朔の大余) % 60 = 大余
28
+ * B = 小余
29
+
30
+ ```
31
+ 第一段ノ経朔ノ小余ノ數三千九百四十三ヨリ少クハ滅日ヲ求メヨト云フナリ則チ己丑ノ十二月ノ小余三百二十アリコレ朔虚分ノ數ヨリ少キ故ニ滅日ヲ求ムコノ三百二十置キテ三十ヲ以テ乗スレハ九千六百トナルコレヲ朔虚分ノ三千九百四十三ニテワレハ商ニトナリ不盡一千七百一十四アリ此ノ商ニニ経朔ノ大余二十二ヲクワエテ滅日ノ大余二十四小余一千七百十四トナルモシ経朔ノ大余ヲ加エテ甲子ノ六十にミツレハコレヲ去モシ小余ニ三十ヲ乗ソモ朔虚分ノ數ニタラサル時ハ経朔ノ大余ヲ直ニ用ユヘシ支干ヲ付ルフツ子ノ如ク紀法ノ圖ニテモトムヘシ二十四ハ戊子ナリ
32
+ ```
33
+
34
+ * 経朔: 大余22小余320
35
+ * 滅日あり
36
+ * 320 < 3943
37
+ * 計算
38
+ * 30 * 320 = 9600
39
+ * 9600 / 3943 = 2
40
+ * 9600 % 3943 = 1714
41
+ * 滅余
42
+ * (2 + 22) % 60 = 24
43
+ * 1714
44
+
45
+ ```
46
+ 大余ニ二 小余ニ三千五百九十一
47
+ ```
48
+
49
+ * 大余2小余3591
50
+
51
+ ```
52
+ 滅日ノ大小余ニ此ノ如ク加フレハ其次ノ滅日ノ大小余トナルモシクワエテ大余甲子ノ六十ニナレハ減去ス又小余朔虚分ノ三千九百四十三ニナレハ減去シテ大余三ヲ加フヘシサテ滅日ノアル月ハ経朔ノ小余朔虚分ノ數ヨリ以下ノ處ナリ
53
+ ```
54
+
55
+ * 次の滅余
56
+ * (小余1714 + 小余3591) % 3943 = 1362
57
+ * (大余24 + 大余2 + 繰り上げ1) % 60 = 27
58
+
59
+ ## 大衍暦
60
+ 『歴代天文律暦等志彙編 七』に従う
61
+
62
+ ### 本文
63
+
64
+ ```
65
+ 推滅日 以有滅之朔経小餘, 減大衍通法。餘, 倍参伍乗之, 用減滅法。餘, 満朔虚分, 為日。不満, 為滅餘。命起経朔初日算外, 即合朔後滅日也。凡経朔小餘不満朔虚分者, 為有滅之朔。
66
+ ```
67
+ p.2056
68
+
69
+ ```
70
+ 大衍通法:三千四十。
71
+ 四象之策:二十九:餘, 一千六百一十三。
72
+ ```
73
+ p.2055-2056
74
+
75
+ ### 定数
76
+ 計算方法は宣明暦と変わらない。定数のみ取りだす
77
+
78
+ #### 朔虚分
79
+
80
+ 本文中に言及はないが、宣明暦と変わらないと見て良い
81
+
82
+ `理想の月日数` (30) * `大衍通法` (3040) - ( `四象之策` (29 * 3040 + 1613) ) = 1427
83
+
84
+ #### 小余倍率
85
+
86
+ `倍参伍` (2 * 3 * 5) = 30
@@ -0,0 +1,163 @@
1
+ # 大衍暦
2
+
3
+ 天平宝字8年1月1日(764/02/07)- 貞観3年12月30日(862/02/02)
4
+
5
+ # 著者
6
+
7
+ [pldb](https://github.com/pldb)
8
+
9
+ # 前提
10
+
11
+ 大衍暦は太陰太陽暦である
12
+
13
+ 詳細は [太陰太陽暦](./section/lunisolar_calendar.md) に記載してある
14
+
15
+ # 計算
16
+
17
+ 計算にあたって、暦共通の計算と、大衍暦固有の計算がある
18
+
19
+ 暦共通の計算は前処理/後処理として説明する
20
+
21
+ その間に大衍暦固有の計算を説明することとする
22
+
23
+ ## 共通前処理
24
+
25
+ 詳細は [共通前処理](./section/common_pre_process.md) に記載してある
26
+
27
+ ## 大衍暦固有の計算
28
+
29
+ 計算手順を以下に示す
30
+
31
+ 1. 11月定朔(補正後の月初日)を求める
32
+ 1. 対象の西暦年から前年冬至を求める
33
+ 2. 対象の西暦年から冬至の月齢を求める
34
+ 3. 前年冬至から11月経朔(補正前の月初日)を求める
35
+ 4. 二十四節気から太陽の運動の補正値を求める
36
+ 5. 月の進退から月の運動の補正値を求める
37
+ 6. 太陽・月の運動の補正値から11月定朔(補正後の月初日)を求める
38
+ 2. 12月定朔(補正後の月初日)を求める
39
+ 1. 11月経朔を進めて12月経朔を求める
40
+ 2. 11月の二十四節気を進めて12月の二十四節気を求める
41
+ 3. 12月の二十四節気から太陽の運動の補正値を求める
42
+ 4. 11月の月の進退を進めて12月の月の進退を求める
43
+ 5. 12月の月の進退から月の運動の補正値を求める
44
+ 6. 太陽・月の運動の補正値から12月定朔(補正後の月初日)を求める
45
+
46
+ 1の計算方法は『日本暦日原典』p.516-521に依拠する
47
+
48
+ 基本的に [宣明暦](./senmyou.md) と手順は変わらない
49
+
50
+ 使用する定数の差分は [定数](./section/const.md) に記載してある
51
+
52
+ 上記のうち、宣明暦との差分のみ記載する
53
+
54
+ ### 二十四節気から太陽の運動の補正値を求める
55
+
56
+ 「24気損益眺朒数」は次の通りである
57
+
58
+ |-|a(眺朒数の初日の値)|b(損益率初日の値)|c(一日ごとの差)|
59
+ |:----|:----|:----|:----|
60
+ |冬至(とうじ)|0.0|+13.4524|-0.1886|
61
+ |小寒(しょうかん)|+176.0|+10.5564|-0.1634|
62
+ |大寒(だいかん)|+314.0|+8.0408|-0.1446|
63
+ |立春(りっしゅん)|+418.0|+5.8160|-0.1318|
64
+ |雨水(うすい)|+491.0|+3.7987|-0.1240|
65
+ |啓蟄(けいちつ)|+535.0|+1.9265|-0.1240|
66
+ |春分(しゅんぶん)|+551.0|-0.2048|-0.1178|
67
+ |清明(せいめい)|+535.0|-1.9968|-0.1190|
68
+ |穀雨(こくう)|+491.0|-3.7956|-0.1240|
69
+ |立夏(りっか)|+418.0|-5.6626|-0.1324|
70
+ |小満(しょうまん)|+314.0|-7.6555|-0.1436|
71
+ |芒種(ぼうしゅ)|+176.0|-9.9405|-0.1436|
72
+ |夏至(げし)|0.0|-12.0819|+0.1436|
73
+ |小暑(しょうしょ)|-176.0|-9.7018|+0.1324|
74
+ |大暑(たいしょ)|-314.0|-7.5450|+0.1240|
75
+ |立秋(りっしゅう)|-418.0|-5.5634|+0.1190|
76
+ |処暑(しょしょ)|-491.0|-3.7038|+0.1178|
77
+ |白露(はくろ)|-535.0|-1.8954|+0.1178|
78
+ |秋分(しゅうぶん)|-551.0|+0.1783|+0.1240|
79
+ |寒露(かんろ)|-535.0|+2.0042|+0.1318|
80
+ |霜降(そうこう)|-491.0|+3.8950|+0.1446|
81
+ |立冬(りっとう)|-418.0|+5.9214|+0.1634|
82
+ |小雪(しょうせつ)|-314.0|+8.1610|+0.1886|
83
+ |大雪(たいせつ)|-176.0|+10.9010|+0.1886|
84
+
85
+ #### 月の進退から月の運動の補正値を求める
86
+
87
+ 宣明暦とは異なり、次の表を用いる
88
+
89
+ |入暦|小余(下限)|小余(上限)|増減率|遅速積|備考|
90
+ |:----|:----|:----|:----|:----|:----|
91
+ |01日|0|3040|+297|0|-|
92
+ |02日|0|3040|+259|+297|-|
93
+ |03日|0|3040|+220|+556|-|
94
+ |04日|0|3040|+180|+776|-|
95
+ |05日|0|3040|+139|+956|-|
96
+ |06日|0|3040|+97|+1095|-|
97
+ |07日|0|2701|+48|+1192|-|
98
+ |07日|2701|3040|-6|+1240|+1192 + 48|
99
+ |08日|0|3040|-64|+1234|-|
100
+ |09日|0|3040|-106|+1170|-|
101
+ |10日|0|3040|-148|+1064|-|
102
+ |11日|0|3040|-189|+916|-|
103
+ |12日|0|3040|-229|+727|-|
104
+ |13日|0|3040|-267|+498|-|
105
+ |14日|0|2363|-231|+231|-|
106
+ |14日|2363|3040|-66|0|+232 - 231|
107
+ |15日|0|3040|-289|-66|-|
108
+ |16日|0|3040|-250|-355|-|
109
+ |17日|0|3040|-211|-605|-|
110
+ |18日|0|3040|-171|-816|-|
111
+ |19日|0|3040|-130|-987|-|
112
+ |20日|0|3040|-87|-1117|-|
113
+ |21日|0|2024|-36|-1204|-|
114
+ |21日|2024|3040|+18|-1240|-1204 - 36|
115
+ |22日|0|3040|+73|-1222|-|
116
+ |23日|0|3040|+116|-1149|-|
117
+ |24日|0|3040|+157|-1033|-|
118
+ |25日|0|3040|+198|-876|-|
119
+ |26日|0|3040|+237|-678|-|
120
+ |27日|0|3040|+276|-441|-|
121
+ |28日|0|1686|+165|-165|-|
122
+
123
+ 『歴代天文律暦等志彙編 七』中華書房 p.2228-2230 により作成した
124
+
125
+ 宣明暦とは異なり進退の列がないが、それは無視して入暦だけを求めればよい
126
+
127
+ これは『日本暦日原典』の中で計算方法Aとされている
128
+
129
+ 他の計算方法B,Cも掲載されているが、ここでは一旦割愛する
130
+
131
+ #### 11月の二十四節気を進めて12月の二十四節気を求める
132
+
133
+ 「入気定日加減数」は次の通りである
134
+
135
+ |二十四節気|経過|
136
+ |:----|:----|
137
+ | 冬至(とうじ)・大雪(たいせつ)|14 日 1351 分 7 秒|
138
+ | 小寒(しょうかん)・小雪(しょうせつ)|14 日 1859 分 7 秒
139
+ | 大寒(だいかん)・立冬(りっとう)|14 日 2314 分 7 秒|
140
+ | 立春(りっしゅん)・霜降(そうこう)|14 日 2728 分 7 秒|
141
+ | 雨水(うすい)・寒露(かんろ)|15 日 76 分 7 秒|
142
+ | 啓蟄(けいちつ)・秋分(しゅうぶん)|15 日 450 分 7 秒|
143
+ | 春分(しゅんぶん)・白露(はくろ)|15 日 878 分 7 秒|
144
+ | 清明(せいめい)・処暑(しょしょ)|15 日 1252 分 7 秒|
145
+ | 穀雨(こくう)・立秋(りっしゅう)|15 日 1640 分 7 秒|
146
+ | 立夏(りっか)・大暑(たいしょ)|15 日 2054 分 7 秒|
147
+ | 小満(しょうまん)・小暑(しょうしょ)|15 日 2509 分 7 秒|
148
+ | 芒種(ぼうしゅ)・夏至(げし)|15 日 3017 分 7 秒|
149
+
150
+ 気策の 15-664.7 に対して、『歴代天文律暦等志彙編 七』中華書房 p.2224 盈縮分の行で加減している
151
+
152
+ ## 共通後処理
153
+
154
+ 詳細は [共通後処理](./section/common_post_process.md) に記載してある
155
+
156
+ # 結語
157
+
158
+ 暦共通・大衍暦の暦算は以上である
159
+
160
+ # 参考文献
161
+
162
+ * 内田 正男『日本暦日原典』雄山閣出版 1975(1975)
163
+ * 『歴代天文律暦等志彙編 七』中華書房
@@ -0,0 +1,116 @@
1
+ # 元嘉暦
2
+
3
+ 允恭天皇34年1月1日(445/01/24)-文武天皇1年12月29日(698/02/15)
4
+
5
+ # 著者
6
+
7
+ [pldb](https://github.com/pldb)
8
+
9
+ # 前提
10
+
11
+ 元嘉暦は太陰太陽暦である
12
+
13
+ 詳細は [太陰太陽暦](./section/lunisolar_calendar.md) に記載してある
14
+
15
+ # 計算
16
+
17
+ 計算にあたって、暦共通の計算と、元嘉暦固有の計算がある
18
+
19
+ 暦共通の計算は前処理/後処理として説明する
20
+
21
+ その間に元嘉暦固有の計算を説明することとする
22
+
23
+ ## 共通前処理
24
+
25
+ 詳細は [共通前処理](./section/common_pre_process.md) に記載してある
26
+
27
+ ## 元嘉暦固有の計算
28
+
29
+ 計算手順を以下に示す
30
+
31
+ 1. 正月朔を求める
32
+ 2. 正月中気を求める
33
+
34
+ 1の計算方法は『日本暦日原典』p.522-523に依拠する
35
+
36
+ 2の計算方法は『日本暦日原典』、『歴代天文律暦等志彙編 六』p.1728 に依拠する
37
+
38
+ ### 正月朔を求める
39
+
40
+ 前提として、 `西暦0年の積年` (1612) を使用する
41
+
42
+ これは次の式により求められる
43
+
44
+ `積年` (5703) - `元嘉20年` (443) - ( `紀法` (608) * `干支` (60) )
45
+
46
+ 次に、西暦x年の正月朔の大余小余を求める
47
+
48
+ 1. ( `西暦0年の積年` (1612) + x ) * `メトン周期(19年=235朔望月)` ( 235 / 19 ) = A ...余り
49
+
50
+ 2. A * `1年(紀日 / 紀法)` ( 22207 / 752 ) = B ...余りが朔の小余
51
+
52
+ 3. B / `大余上限` (60) = C ...余りが朔の大余
53
+
54
+ 『日本暦日原典』に挙げられている西暦529年の場合は次の通りとなる
55
+
56
+ 1. (1612 + 529) * 235 / 19 = 26480 ...15
57
+
58
+ 2. 26480 * 22207 / 752 = 781969 ...672
59
+
60
+ 3. 781969 / 60 = 13032 ...49
61
+
62
+ これにより、大余49、小余 672 / `小余上限` (752) = 0.8936 が求められる
63
+
64
+ ### 正月中気を求める
65
+
66
+ こちらは宋書(『歴代天文律暦等志彙編 六』)を参考にする
67
+
68
+ 西暦x年の正月中気の大余小余を求める
69
+
70
+ 1. ( `西暦0年の積年` (1612) + x) * `餘数 / 度法` (1595 / 304) = A' ...余りが中気の小余
71
+
72
+ 2. A' / 60 = B' ...余りが朔の大余
73
+
74
+ 西暦529年の場合は次の通りとなる
75
+
76
+ 1. (1612 + 529) * 1595 / 304 = 11233 ...63
77
+
78
+ 2. 11233 / 60 = 13033 ...13
79
+
80
+ これにより、大余13、小余 126 / `度法` (304) = 0.2072 が求められる
81
+
82
+ #### 計算方法の相違
83
+
84
+ 『日本暦日原典』の場合は次のようになる
85
+
86
+ 1. ( `西暦0年の積年` (1612) + x) * `紀日 / 紀法` (222070 / 608) = A' ...余りが中気の小余
87
+
88
+ 2. A' / 60 = B' ...余りが朔の大余
89
+
90
+ 『日本暦日原典』では分母を `紀法` にしているが、当ライブラリでは宋書にならって `度法` としたため採用しなかった
91
+
92
+ 両者は計算方法は異なるが、結果の大余小余は変わらない
93
+
94
+ #### 餘数とは
95
+
96
+ 先述の `餘数` (1595) については注釈がないが、次のように求めることができた
97
+
98
+ `紀日` (222070) = `紀法` (608) * 360 + 3190
99
+
100
+ この 3190 が余りとなるが、分母が `紀法` (608) ではなく `度法` (304) のため2で割る
101
+
102
+ これにより 3190 / 2 = 1595 となる
103
+
104
+ ## 共通後処理
105
+
106
+ 詳細は [共通後処理](./section/common_post_process.md) に記載してある
107
+
108
+ # 結語
109
+
110
+ 暦共通・元嘉暦の暦算は以上である
111
+
112
+ # 参考文献
113
+
114
+ * 内田 正男『日本暦日原典』雄山閣出版 1975(1975)
115
+ * 『歴代天文律暦等志彙編 六』中華書房
116
+
@@ -0,0 +1,172 @@
1
+ # 儀鳳暦
2
+
3
+ 文武天皇2年1月1日(698/02/16)-天平宝字7年12月30日(764/02/06)
4
+
5
+ # 著者
6
+
7
+ [pldb](https://github.com/pldb)
8
+
9
+ # 前提
10
+
11
+ 儀鳳暦は太陰太陽暦である
12
+
13
+ 詳細は [太陰太陽暦](./section/lunisolar_calendar.md) に記載してある
14
+
15
+ # 計算
16
+
17
+ 計算にあたって、暦共通の計算と、儀鳳暦固有の計算がある
18
+
19
+ 暦共通の計算は前処理/後処理として説明する
20
+
21
+ その間に儀鳳暦固有の計算を説明することとする
22
+
23
+ ## 共通前処理
24
+
25
+ 詳細は [共通前処理](./section/common_pre_process.md) に記載してある
26
+
27
+ ## 儀鳳暦固有の計算
28
+
29
+ 計算手順を以下に示す
30
+
31
+ 1. 11月定朔(補正後の月初日)を求める
32
+ 1. 対象の西暦年から前年冬至を求める
33
+ 2. 対象の西暦年から冬至の月齢を求める
34
+ 3. 前年冬至から11月経朔(補正前の月初日)を求める
35
+ 4. 二十四節気から太陽の運動の補正値を求める
36
+ 5. 月の進退から月の運動の補正値を求める
37
+ 6. 太陽・月の運動の補正値から11月定朔(補正後の月初日)を求める
38
+ 2. 12月定朔(補正後の月初日)を求める
39
+ 1. 11月経朔を進めて12月経朔を求める
40
+ 2. 11月の二十四節気を進めて12月の二十四節気を求める
41
+ 3. 12月の二十四節気から太陽の運動の補正値を求める
42
+ 4. 11月の月の進退を進めて12月の月の進退を求める
43
+ 5. 12月の月の進退から月の運動の補正値を求める
44
+ 6. 太陽・月の運動の補正値から12月定朔(補正後の月初日)を求める
45
+
46
+ 1の計算方法は『日本暦日原典』p.516-520に依拠する
47
+
48
+ 基本的に [宣明暦](./senmyou.md) と手順は変わらない
49
+
50
+ 使用する定数の差分は [定数](./section/const.md) に記載してある
51
+
52
+ 上記のうち、宣明暦との差分のみ記載する
53
+
54
+ ### 二十四節気から太陽の運動の補正値を求める
55
+
56
+ 「24気損益眺朒数」は次の通りである
57
+
58
+ |-|a(眺朒数の初日の値)|b(損益率初日の値)|c(一日ごとの差)|
59
+ |:----|:----|:----|:----|
60
+ |冬至(とうじ)|0.0|+3.9546|-0.0372|
61
+ |小寒(しょうかん)|+54.0|+3.4091|-0.0372|
62
+ |大寒(だいかん)|+100.0|+2.8636|-0.0372|
63
+ |立春(りっしゅん)|+138.0|+2.3181|+0.0372|
64
+ |雨水(うすい)|+176.0|+2.8636|+0.0372|
65
+ |啓蟄(けいちつ)|+222.0|+3.4091|+0.0372|
66
+ |春分(しゅんぶん)|+276.0|-3.7220|+0.0329|
67
+ |清明(せいめい)|+222.0|-3.2086|+0.0329|
68
+ |穀雨(こくう)|+176.0|-2.6952|+0.0329|
69
+ |立夏(りっか)|+138.0|-2.1818|-0.0329|
70
+ |小満(しょうまん)|+100.0|-2.6952|-0.0329|
71
+ |芒種(ぼうしゅ)|+54.0|-3.2086|-0.0329|
72
+ |夏至(げし)|0.0|-3.7220|+0.0329|
73
+ |小暑(しょうしょ)|-54.0|-3.2086|+0.0329|
74
+ |大暑(たいしょ)|-100.0|-2.6952|+0.0329|
75
+ |立秋(りっしゅう)|-138.0|-2.1818|-0.0329|
76
+ |処暑(しょしょ)|-176.0|-2.6952|-0.0329|
77
+ |白露(はくろ)|-222.0|-3.2086|-0.0329|
78
+ |秋分(しゅうぶん)|-276.0|+3.9546|-0.0372|
79
+ |寒露(かんろ)|-222.0|+3.4091|-0.0372|
80
+ |霜降(そうこう)|-176.0|+2.8636|-0.0372|
81
+ |立冬(りっとう)|-138.0|+2.3181|+0.0372|
82
+ |小雪(しょうせつ)|-100.0|+2.8636|+0.0372|
83
+ |大雪(たいせつ)|-54.0|+3.4091|+0.0372|
84
+
85
+ #### 月の進退から月の運動の補正値を求める
86
+
87
+ 宣明暦とは異なり、次の表を用いる
88
+
89
+ |入暦|小余(下限)|小余(上限)|増減率|遅速積|備考|
90
+ |:----|:----|:----|:----|:----|:----|
91
+ |01日|0|1340|-134|0|-|
92
+ |02日|0|1340|-117|-134|-|
93
+ |03日|0|1340|-99|-251|-|
94
+ |04日|0|1340|-78|-350|-|
95
+ |05日|0|1340|-56|-428|-|
96
+ |06日|0|1340|-33|-484|-|
97
+ |07日|0|1191|-9|-517|-|
98
+ |07日|1191|1340|0|-526|-|
99
+ |08日|0|1340|+14|-526|-|
100
+ |09日|0|1340|+38|-512|-|
101
+ |10日|0|1340|+62|-474|-|
102
+ |11日|0|1340|+85|-412|-|
103
+ |12日|0|1340|+104|-327|-|
104
+ |13日|0|1340|+121|-223|-|
105
+ |14日|0|1042|+102|-102|-|
106
+ |14日|1042|1340|+29|0|-|
107
+ |15日|0|1340|+128|+29|-|
108
+ |16日|0|1340|+115|+157|-|
109
+ |17日|0|1340|+95|+272|-|
110
+ |18日|0|1340|+74|+367|-|
111
+ |19日|0|1340|+52|+441|-|
112
+ |20日|0|1340|+28|+493|-|
113
+ |21日|0|892|+4|+521|-|
114
+ |21日|892|1340|0|+525|-|
115
+ |22日|0|1340|-20|+525|-|
116
+ |23日|0|1340|-44|+505|-|
117
+ |24日|0|1340|-68|+461|-|
118
+ |25日|0|1340|-89|+393|-|
119
+ |26日|0|1340|-108|+304|-|
120
+ |27日|0|1340|-125|+196|-|
121
+ |28日|0|743.06|-71|+71|-|
122
+
123
+ 『歴代天文律暦等志彙編 七』中華書房 p.2010-2013 により作成した
124
+
125
+ ただし、引用元を次のように訂正する
126
+
127
+ * 14日の小余上限が 1402 となっているが、これは 1042 の誤り
128
+ * 宣明暦の定数と比較するとこの誤りが分かる
129
+ * 宣明暦の7日の小余は7465(初益)である。入暦は1始まりなので、0始まりで表現すると 6-7465 となる
130
+ * 6 * 8400(統法) + 7465(初益) = 57865
131
+ * 57865 * 2 = 115730
132
+ * 115730 / 1340(総法) = 13 余り 1041.690476
133
+ * 0始まりを1始まりにして少数部を丸めると 14-1042
134
+ * 28日の小余上限が 743 となっているが、これを 743.06 とする
135
+ * 天平13年(741年) 2月 の計算により 743.06 とした
136
+
137
+ 宣明暦とは異なり進退の列がないが、それは無視して入暦だけを求めればよい
138
+
139
+ これは『日本暦日原典』の中で計算方法Aとされている
140
+
141
+ 他の計算方法B,Cも掲載されているが、ここでは一旦割愛する
142
+
143
+ #### 11月の二十四節気を進めて12月の二十四節気を求める
144
+
145
+ 「入気定日加減数」は次の通りである
146
+
147
+ |二十四節気|経過|
148
+ |:----|:----|
149
+ | 冬至(とうじ)・大雪(たいせつ) | 14 日 910 分 5 秒 |
150
+ | 小寒(しょうかん)・小雪(しょうせつ) | 14 日 1014 分 5 秒 |
151
+ | 大寒(だいかん)・立冬(りっとう) | 14 日 1118 分 5 秒 |
152
+ | 立春(りっしゅん)・霜降(そうこう) | 14 日 1118 分 5 秒 |
153
+ | 雨水(うすい)・寒露(かんろ) | 14 日 1014 分 5 秒 |
154
+ | 啓蟄(けいちつ)・秋分(しゅうぶん) | 14 日 910 分 5 秒 |
155
+ | 春分(しゅんぶん)・白露(はくろ) | 15 日 1014 分 5 秒 |
156
+ | 清明(せいめい)・処暑(しょしょ) | 15 日 910 分 5 秒 |
157
+ | 穀雨(こくう)・立秋(りっしゅう) | 15 日 806 分 5 秒 |
158
+ | 立夏(りっか)・大暑(たいしょ) | 15 日 806 分 5 秒 |
159
+ | 小満(しょうまん)・小暑(しょうしょ) | 15 日 910 分 5 秒 |
160
+ | 芒種(ぼうしゅ)・夏至(げし) | 15 日 1014 分 5 秒 |
161
+
162
+ ## 共通後処理
163
+
164
+ 詳細は [共通後処理](./section/common_post_process.md) に記載してある
165
+
166
+ # 結語
167
+
168
+ 暦共通・儀鳳暦の暦算は以上である
169
+
170
+ # 参考文献
171
+
172
+ * 内田 正男『日本暦日原典』雄山閣出版 1975(1975)
@@ -0,0 +1,60 @@
1
+ # 共通後処理
2
+
3
+ 元嘉暦では経朔、儀鳳暦以降では定朔を求めてきたが、さらに月ごとの固有値を求める
4
+
5
+ この計算は当月と次月の経朔/定朔を必要とするため、例として11月定朔/12月定朔を使うことにする
6
+
7
+ 一例として宣明暦をもとに進める
8
+
9
+ # 月の大小を求める
10
+
11
+ 太陰太陽暦において1ヶ月の日数は29日または30日である
12
+
13
+ 求め方は『日本暦日原典』凡例のp.6を参照した
14
+
15
+ これを求める上で、朔日の大余(1日を示す単位)を比較する
16
+
17
+ 例えば、 11月の朔日(定朔)が 52-2655 で、 12月の朔日(定朔)が 22-6780 の場合、52 と 22 を取り出し、 差分が10で割り切れるかを検証する
18
+
19
+ 52 - 22 = 30 は10で割り切れるため、これは11月は大の月(30日)である
20
+
21
+ もし割り切れない場合(差分が29の場合)は小の月(29日)である
22
+
23
+ なお、引用元では定朔の干支から求めているが、干支の元ネタが大余のため、実装の容易さから上記のような解説となった
24
+
25
+ # 二十四節気の所属を求める
26
+
27
+ その月が何月であるかは二十四節気の中気にあることはすでに述べた通りである
28
+
29
+ ここでは中気節気と月を対応させることにする
30
+
31
+ 求め方だがこれは確たる引用元がない
32
+
33
+ 『日本暦日原典』においても同著者の「宣明暦に関する研究」に遡っても言及がなかった
34
+
35
+ ただし以下のようにすれば『日本暦日原典』通りに求めることができる
36
+
37
+ 11月定朔を求める時に、前年冬至として 11-2730 を求めていた
38
+
39
+ また、 `気策(24分の1年)` (15-1835.5) が定義されており、二十四節気のそれぞれの間隔が固定値であることが分かる
40
+
41
+ つまり、 `前年冬至` (11-2730) + `気策(24分の1年)` (15-1835.5) = `小寒` (26-4565.5) ≒ 26-4565
42
+
43
+ 結果から秒は省略する(切り捨てる)
44
+
45
+ これを繰り返すことで二十四節気それぞれの値を得ることができる
46
+
47
+ (これは常気法の求め方であり、貞享暦以降の定気法では異なる)
48
+
49
+ もし前年冬至〜当年冬至まで処理を繰り返す場合は、単に24個分を求めるというよりは、
50
+ 前年大雪(前年冬至 - 気策)、当年冬至、当年小寒まで求めておいた方が良い
51
+
52
+ こうして得られた二十四節気を11月から順に比較していく
53
+
54
+ 11月を例に取ると、 11月定朔( 52-2655 ) <= 二十四節気 < 12月定朔(22-6780) である
55
+
56
+ すでに言及した通り大余は60で一巡して0になるため、範囲計算はそれを考慮して行う必要がある
57
+
58
+ 11月には前年大雪( 56-894 )と前年冬至( 11-2730 )が含まれているため、これが11月の中気/節気(取り上げた順番に従うと 節気/中気)となる
59
+
60
+ 以上の手続きで『日本暦日原典』通りの結果が得られる