zakuro 0.8.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +38 -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/operation/csv/month.csv +100 -79
  8. data/doc/operation/operation.xlsx +0 -0
  9. data/doc/usage.md +120 -0
  10. data/doc/vanished_date.md +86 -0
  11. data/doc/version/daien.md +163 -0
  12. data/doc/version/genka.md +116 -0
  13. data/doc/version/gihou.md +172 -0
  14. data/doc/version/section/common_post_process.md +60 -0
  15. data/doc/version/section/common_pre_process.md +185 -0
  16. data/doc/version/section/const.md +45 -0
  17. data/doc/version/section/decimal.md +101 -0
  18. data/doc/version/section/lunisolar_calendar.md +55 -0
  19. data/doc/version/section/senmyou_november_1st.md +41 -0
  20. data/{lib/zakuro/version/senmyou/README.md → doc/version/senmyou.md} +15 -168
  21. data/lib/zakuro/calculation/cycle/abstract_remainder.rb +58 -0
  22. data/lib/zakuro/calculation/monthly/first_day.rb +9 -1
  23. data/lib/zakuro/calculation/option/vanished_date/abstract_parameter.rb +40 -0
  24. data/lib/zakuro/calculation/option/vanished_date/location.rb +84 -0
  25. data/lib/zakuro/calculation/range/medieval_annual_range.rb +5 -3
  26. data/lib/zakuro/calculation/range/transfer/gengou_scroller.rb +1 -0
  27. data/lib/zakuro/calculation/stella/lunar/abstract_location.rb +6 -2
  28. data/lib/zakuro/calculation/stella/lunar/choukei_value.rb +14 -0
  29. data/lib/zakuro/calculation/summary/internal/option.rb +59 -4
  30. data/lib/zakuro/context/option.rb +17 -0
  31. data/lib/zakuro/context/version_class_resolver.rb +17 -1
  32. data/lib/zakuro/operation/yaml/month.yaml +955 -281
  33. data/lib/zakuro/result/data/option/vanished_date/calculation.rb +45 -0
  34. data/lib/zakuro/result/data/option/vanished_date/option.rb +47 -0
  35. data/lib/zakuro/result/data/single_day.rb +2 -0
  36. data/lib/zakuro/version/daien/const/number.rb +2 -0
  37. data/lib/zakuro/version/daien/const/remainder.rb +7 -2
  38. data/lib/zakuro/version/daien/cycle/remainder.rb +38 -20
  39. data/lib/zakuro/version/daien/monthly/lunar_phase.rb +2 -4
  40. data/lib/zakuro/version/daien/option/dropped_date/parameter.rb +5 -3
  41. data/lib/zakuro/version/daien/option/vanished_date/parameter.rb +33 -0
  42. data/lib/zakuro/version/daien/stella/lunar/location.rb +5 -8
  43. data/lib/zakuro/version/genka/cycle/remainder.rb +6 -2
  44. data/lib/zakuro/version/genka/monthly/lunar_phase.rb +14 -3
  45. data/lib/zakuro/version/genka/option/vanished_date/parameter.rb +31 -0
  46. data/lib/zakuro/version/gihou/const/remainder.rb +1 -5
  47. data/lib/zakuro/version/gihou/cycle/remainder.rb +0 -26
  48. data/lib/zakuro/version/gihou/monthly/lunar_phase.rb +2 -4
  49. data/lib/zakuro/version/gihou/option/vanished_date/parameter.rb +31 -0
  50. data/lib/zakuro/version/gihou/stella/lunar/location.rb +5 -8
  51. data/lib/zakuro/version/senmyou/const/number.rb +3 -1
  52. data/lib/zakuro/version/senmyou/const/remainder.rb +3 -0
  53. data/lib/zakuro/version/senmyou/cycle/remainder.rb +17 -34
  54. data/lib/zakuro/version/senmyou/monthly/lunar_phase.rb +5 -5
  55. data/lib/zakuro/version/senmyou/option/vanished_date/parameter.rb +33 -0
  56. data/lib/zakuro/version/senmyou/stella/lunar/location.rb +6 -8
  57. data/lib/zakuro/version/senmyou/stella/lunar/value.rb +9 -0
  58. metadata +24 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4aab5a0f52f7180542260fa41204ea918b54601f525029e8e056efcd94cbf725
4
- data.tar.gz: 6b72f7bbe79473ecbf0332c0f38aeea020d6cee6dfc42c667784c5ba6cb274d1
3
+ metadata.gz: 64217957bc4e6be2fa7fe5e0414a3cfc4d64a424bd0a3f8d407ad911f1a4418f
4
+ data.tar.gz: 5042fd68cdb7cd76cf5b62de725db105912f14b29cc4849cdaaa1cff3110424a
5
5
  SHA512:
6
- metadata.gz: b990f830dd4bb46a340ae3fadfd2b303bd2a5e686351b2f4463dced260182114a5886ff35e10558d27c99752e9dae6a6bff9805e61ae635076e144341770b665
7
- data.tar.gz: cc8546a484bba5a35049072b6a048751c9fa13a5609bd677345c9c1d69de2b41362de4695e19f3ec91b67da0de097058bcf16e618534502d1e23b4225763a05d
6
+ metadata.gz: e4d7637971c69f269591897e645df48077eeb4504cb1c7766c0414ae3c82f190a832051dfd139589a2c04c4ba1541bbb4e89d20a755bb0a0b513c23e1f4ae633
7
+ data.tar.gz: 198cd920eb173788dc1f02e511a40f84a86d2aea10e509e2fe16bb4872244d405201ac4794e10f09232e84b01f7354208b3400304506f7efb3d6df9b184fadea
data/README.md CHANGED
@@ -12,6 +12,14 @@ zakuro は日本の暦を扱う暦算ライブラリです。
12
12
 
13
13
  ## 導入
14
14
 
15
+ ### Ruby
16
+
17
+ 次の範囲で動作確認しております。
18
+
19
+ `2.6.x - 3.0.x`
20
+
21
+ ### Gem
22
+
15
23
  [rubygem](https://rubygems.org/gems/zakuro) に登録しております。
16
24
 
17
25
  ```ruby
@@ -50,173 +58,21 @@ Or install it yourself as:
50
58
  |1844/02/18|天保暦| |-|
51
59
  |1872/12/09|グレゴリオ暦| |-|
52
60
 
53
- # 使用方法
54
-
55
- ```
56
- require 'zakuro'
57
-
58
- # 西暦日 -> 和暦日への変換方法を示す
59
-
60
- # ざくろ商人(Zakuro::Merchant)に西暦日を渡し、和暦日を受け取る
61
- western_date = Date.new(862, 2, 3)
61
+ 表中A-Cは月の運動の計算手順ごとに分類されます。
62
62
 
63
- # 初期化時の設定
64
- merchant = Zakuro::Merchant.new(condition: { date: western_date })
65
- puts merchant.commit.to_json
66
- # => {"data":{"year":{"first_gengou":{"name":"貞観","number":4},"second_gengou":{"name":"","number":-1},"zodiac_name":"壬午","total_days":354},"month":{"number":1,"leaped":false,"days_name":"大","first_day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"odd_solar_terms":[{"index":5,"remainder":"34-5368"}],"even_solar_terms":[{"index":4,"remainder":"19-3532"}]},"day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"options":{}},"operation":{"operated":false,"month":{"current":{"id":"","western_date":"","page":-1,"number":-1,"annotations":[]},"parent":{"id":"","western_date":"","page":-1,"number":-1,"annotations":[]}},"original":{"year":{"first_gengou":{"name":"貞観","number":4},"second_gengou":{"name":"","number":-1},"zodiac_name":"壬午","total_days":354},"month":{"number":1,"leaped":false,"days_name":"大","first_day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"odd_solar_terms":[{"index":5,"remainder":"34-5368"}],"even_solar_terms":[{"index":4,"remainder":"19-3532"}]},"day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"options":{}}}}
63
+ 現在は「長慶宣明暦算法」の計算手順Aのみ対応しております。
67
64
 
68
- western_date = Date.new(1685, 2, 3)
69
-
70
- # 再設定
71
- # merchant = Zakuro::Merchant.new
72
- merchant.offer(condition: { date: western_date })
73
- puts merchant.commit.to_json
74
- # => {"data":{"year":{"first_gengou":{"name":"貞享","number":1},"second_gengou":{"name":"","number":-1},"zodiac_name":"","total_days":354},"month":{"number":12,"leaped":false,"days_name":"大","first_day":{"number":1,"zodiac_name":"壬辰","remainder":"28-4182","western_date":"1685-01-05"},"odd_solar_terms":[{"index":1,"remainder":"30-890"}],"even_solar_terms":[{"index":2,"remainder":"45-2726"}]},"day":{"number":30,"zodiac_name":"辛酉","remainder":"57-4182","western_date":"1685-02-03"},"options":{}},"operation":{"operated":false,"month":{"current":{"id":"","western_date":"","page":-1,"number":-1,"annotations":[]},"parent":{"id":"","western_date":"","page":-1,"number":-1,"annotations":[]}},"original":{"year":{"first_gengou":{"name":"貞享","number":1},"second_gengou":{"name":"","number":-1},"zodiac_name":"","total_days":354},"month":{"number":12,"leaped":false,"days_name":"大","first_day":{"number":1,"zodiac_name":"壬辰","remainder":"28-4182","western_date":"1685-01-05"},"odd_solar_terms":[{"index":1,"remainder":"30-890"}],"even_solar_terms":[{"index":2,"remainder":"45-2726"}]},"day":{"number":30,"zodiac_name":"辛酉","remainder":"57-4182","western_date":"1685-02-03"},"options":{}}}}
65
+ # 使用方法
75
66
 
76
- # 期間検索
77
- merchant = Zakuro::Merchant.new(condition: { range: {start: Date.new(862, 2, 3), last: Date.new(862, 2, 4)}})
78
- puts merchant.commit.to_json
79
- # => {"list":[{"data":{"year":{"first_gengou":{"name":"貞観","number":4},"second_gengou":{"name":"","number":-1},"zodiac_name":"壬午","total_days":354},"month":{"number":1,"leaped":false,"days_name":"大","first_day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"odd_solar_terms":[{"index":5,"remainder":"34-5368"}],"even_solar_terms":[{"index":4,"remainder":"19-3532"}]},"day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"options":{}},"operation":{"operated":false,"month":{"current":{"id":"","western_date":"","page":-1,"number":-1,"annotations":[]},"parent":{"id":"","western_date":"","page":-1,"number":-1,"annotations":[]}},"original":{"year":{"first_gengou":{"name":"貞観","number":4},"second_gengou":{"name":"","number":-1},"zodiac_name":"壬午","total_days":354},"month":{"number":1,"leaped":false,"days_name":"大","first_day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"odd_solar_terms":[{"index":5,"remainder":"34-5368"}],"even_solar_terms":[{"index":4,"remainder":"19-3532"}]},"day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"options":{}}}},{"data":{"year":{"first_gengou":{"name":"貞観","number":4},"second_gengou":{"name":"","number":-1},"zodiac_name":"壬午","total_days":354},"month":{"number":1,"leaped":false,"days_name":"大","first_day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"odd_solar_terms":[{"index":5,"remainder":"34-5368"}],"even_solar_terms":[{"index":4,"remainder":"19-3532"}]},"day":{"number":2,"zodiac_name":"辛未","remainder":"7-1282","western_date":"0862-02-04"},"options":{}},"operation":{"operated":false,"month":{"current":{"id":"","western_date":"","page":-1,"number":-1,"annotations":[]},"parent":{"id":"","western_date":"","page":-1,"number":-1,"annotations":[]}},"original":{"year":{"first_gengou":{"name":"貞観","number":4},"second_gengou":{"name":"","number":-1},"zodiac_name":"壬午","total_days":354},"month":{"number":1,"leaped":false,"days_name":"大","first_day":{"number":1,"zodiac_name":"庚午","remainder":"6-1282","western_date":"0862-02-03"},"odd_solar_terms":[{"index":5,"remainder":"34-5368"}],"even_solar_terms":[{"index":4,"remainder":"19-3532"}]},"day":{"number":2,"zodiac_name":"辛未","remainder":"7-1282","western_date":"0862-02-04"},"options":{}}}}]}
80
- ```
67
+ [使用方法](./doc/usage.md) を参照してください。
81
68
 
82
69
  # 条件
83
70
 
84
- 条件(condition)のバリエーションを示します。
85
-
86
- | 項目名 | キー名 | hash内キー名 | データ型 | 備考 |
87
- |----------------|---------|--------------|----------|--------------------|
88
- | 基準日 | date | | Date | 西暦日 |
89
- | | | | String | 和暦日/西暦日 |
90
- | 範囲(開始日) | range | start | Date | 西暦日 |
91
- | | | | String | 和暦日/西暦日 |
92
- | 範囲(終了日) | | last | Date | 西暦日 |
93
- | | | | String | 和暦日/西暦日 |
94
- | 列 | columns | | Array | 取得したい列の列名 |
95
- | オプション | options | | Hash<String, Object> | 取得オプション |
96
-
97
- 現時点では `date` と `range` のみ対応中です。
98
-
99
- ## オプション
100
-
101
- | 項目名 | キー名 | データ型 | データ | 備考 |
102
- |--------|-----------|----------|--------|------------------------|
103
- | 暦 | version | String | Genka | 元嘉暦 |
104
- | | | | Gihou | 儀鳳暦 |
105
- | | | | Daien | 大衍暦 |
106
- | | | | Senmyou | 宣明暦 |
107
- | | | | Joukyou | 貞享暦 |
108
- | | | | Kansei | 寛政暦 |
109
- | | | | Tenpou | 天保暦 |
110
- | | | | Gregorio | グレゴリオ暦 |
111
- | | | | | 指定なし(デフォルト) |
112
- | 没日 | dropped_days | TRUE | | 没日あり |
113
- | | | FALSE | | 没日なし(デフォルト) |
114
- | 四季 | seasons | TRUE | | 四季あり |
115
- | | | FALSE | | 四季なし(デフォルト) |
116
-
117
- 現時点では宣明暦の [没日](./doc/dropped_date.md) のみ試験的に対応しております(結果未検証)。
71
+ [条件](./doc/condition.md) を参照してください。
118
72
 
119
73
  # 期待値
120
- 暦算値は『日本暦日原典』、元号の切り替えは『日本史年表 第5版』を範とします。
121
-
122
- ## 種類
123
-
124
- 現状は一日検索のみ対応しております。
125
-
126
- | 項目名 | データ型 |
127
- |----------|------------------------|
128
- | 一日検索 | Zakuro::Result::Single |
129
- | 範囲検索 | Zakuro::Result::Range |
130
-
131
- ### Zakuro::Result::Single
132
-
133
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考   |
134
- |----------|-----------|---|---|-----------------------------------|--------|---------------------------------------|
135
- | 日付情報 | data | | | Zakuro::Result::Data::SingleDay | - | 運用値(計算値は運用情報内を参照のこと)|
136
- | 運用情報 | operation | | | Zakuro::Result::Operation | - | - |
137
-
138
- ### Zakuro::Result::Range
139
-
140
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考   |
141
- |----------|-----------|---|---|---------------------------------------|--------|---------------------------------------|
142
- | 日リスト | list | | | Array\<Zakuro::Result::Data::Single\> | - | 範囲内の日付情報すべて |
143
-
144
- ### Zakuro::Result::SingleDay
145
-
146
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
147
- |--------------------------|--------|------------------|--------------|---------------------------------|------------|----------------------------|
148
- | 年情報 | year | | | Zakuro::Result::Data::Year | | |
149
- | 年号 | | first_gengou | | Zakuro::Result::Data::Gengou | | |
150
- | 元号 | | | name | String | 承平 | |
151
- | 元号年 | | | number | Integer | 7 | |
152
- | 年号(南北朝時代の北朝) | | second_gengou | | Zakuro::Result::Data::Gengou | | |
153
- | 元号 | | | name | String | - | 南北朝時代の北朝のみ |
154
- | 元号年 | | | number | Integer | - | 南北朝時代の北朝のみ |
155
- | 年の干支 | | zodiac_name | | String | 丁酉 | |
156
- | 年の日数 | | total_days | | Integer | 354 | |
157
- | 月 | month | | | Zakuro::Result::Data::Month | | |
158
- | 月番号 | | number | | Integer | 1 | x月 |
159
- | 閏月判定 | | leaped | | True/False | false | 閏月(true)/平月(false) |
160
- | 月の大小 | | days_name | | String | 大 | 大(30日) / 小(29日) |
161
- | 月初日 | | first_day | number | Integer | 1 | x日(1日固定) |
162
- | 月初日の干支 | | | zodiac_name | String | 甲寅 | |
163
- | 月初日の大余小余 | | | remainder | String | 50-2479 | |
164
- | 西暦日 | | | western_date | String | 0937-02-13 | |
165
- | 節気 | | odd_solar_terms | | Zakuro::Result::Data::SolarTerm | | |
166
- | 二十四節気番号 | | | index | Integer | 5 | 番号(冬至0始まり) |
167
- | 二十四節気の大余小余 | | | remainder | String | 7-8293 | 大余小余 |
168
- | 中気 | | even_solar_terms | | Zakuro::Result::Data::SolarTerm | | |
169
- | 二十四節気番号 | | | index | Integer | 4 | 番号(冬至0始まり) |
170
- | 二十四節気の大余小余 | | | remainder | String | 52-6457 | 大余小余 |
171
- | 日 | day | | | Zakuro::Result::Data::Day | | |
172
- | 日番号 | | number | | Integer | 2 | x日 |
173
- | 日の干支 | | zodiac_name | | String | 乙卯 | 日の干支 |
174
- | 日の大余小余 | | remainder | | String | 51-2479 | 大余小余 |
175
- | 西暦日 | | western_date | | String | 0937-02-14 | 西暦日 |
176
- | オプション | options | | | Hash<String, Zakuro::Result::Data::Option::AbstractOption>| | オプション値 |
177
-
178
- ### Zakuro::Result::Operation
179
-
180
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
181
- |--------------|----------|------------|-------------|--------------------------------------------|---------|----------------------|
182
- | 運用有無 | operated |   |   | True/False | true |   |
183
- | 月別履歴情報 | month |   |   | Zakuro::Result::Operation::Month |   |   |
184
- | 計算値 | original |   |   | Zakuro::Result::Data::SingleDay |   | 運用値差替前の計算値 |
185
-
186
- ### Zakuro::Result::Operation::Month
187
-
188
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
189
- |--------------------------|----------|------------|----------|--------------------------------------------|--------------|---------------------------------------------|
190
- | 月別履歴情報(当月) | current |   |   | Zakuro::Result::Operation::Month::History | |該当月の履歴情報 |
191
- | 月別履歴情報(親) | parent |   |   | Zakuro::Result::Operation::Month::History |   |前後の月により副次的に影響を受けた時の履歴情報|
192
-
193
-
194
- ### Zakuro::Result::Operation::Month::History
195
-
196
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
197
- |-------------------|----------|--------------|-------------|----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|----------------------|
198
- | ID | | id |   | String | 178-1-1 | zakuro内の一意なID |
199
- | 月初日の西暦日 | | western_date |   | String | 0937-02-13 | 計算値 |
200
- | 原文頁数 | | page |   | Integer | 178 |   |
201
- | 原文注釈番号 | | number |   | Integer | 1 |   |
202
- | 注釈 | | annotations |   | Array\<Zakuro::Result::Operation::MonthAnnotation\> |   |   |
203
- | 注釈内容 |   | | description | String | 計算は51乙卯であるが, 日本紀略に甲寅朔とある。<br>正月甲寅朔のユリウス暦日は2月13日となる。(元旦日食 をさけるための変更か) |   |
204
- | 注釈補記 |   | | note | String | - | 原文訂正 |
205
-
206
- ### Zakuro::Result::Data::Option::AbstractOption
207
-
208
- #### Zakuro::Result::Data::Option::DroppedDate::Option
209
-
210
- キー: dropped_date
211
-
212
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
213
- | -------------------- | ----------- | ---------- | --------- | ------------------------------------------------------ | -------- | ------------------ |
214
- | オプション値有無 | matched | | | True/False | true | |
215
- | 演算値 | calculation | | | Zakuro::Result::Data::Option::DroppedDate::Calculation | | |
216
- | 没余 | | remainder | | String | 59-34155 | |
217
- | 二十四節気 | | solar_term | | Zakuro::Result::Data::Option::DroppedDate::SolarTerm | | |
218
- | 二十四節気番号 | | | index | Integer | 6 | |
219
- | 二十四節気の大余小余 | | | remainder | String | 49-7203 | |
74
+
75
+ [期待値](./doc/expection.md) を参照してください。
220
76
 
221
77
  # 元号
222
78
 
@@ -225,11 +81,33 @@ puts merchant.commit.to_json
225
81
  # 運用値
226
82
 
227
83
  一部の月では計算値から運用値への書き換えが発生します。
84
+
228
85
  経緯は [実運用](./doc/operation.md) を参照してください。
229
86
 
230
87
  # 暦算
231
88
 
232
- [宣明暦](./lib/zakuro/version/senmyou/README.md) のみ記載しております。
89
+ 暦算の解説は次の通りです。
90
+
91
+ ## 暦別
92
+
93
+ |暦 |有無|
94
+ |:----|:----|
95
+ |[元嘉暦](./doc/version/genka.md)|✓|
96
+ |[儀鳳暦](./doc/version/gihou.md)|✓|
97
+ |[大衍暦](./doc/version/daien.md)|✓|
98
+ |[宣明暦](./doc/version/senmyou.md)|✓|
99
+ |貞享暦|-|
100
+ |宝暦暦|-|
101
+ |寛政暦|-|
102
+ |天保暦|-|
103
+ |グレゴリオ暦|-|
104
+
105
+ ## 項目別
106
+
107
+ |項目 |有無|
108
+ |:----|:----|
109
+ |[没日](./doc/dropped_date.md)|✓|
110
+ |滅日|-|
233
111
 
234
112
  # 例外
235
113
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.9.1
data/doc/condition.md ADDED
@@ -0,0 +1,36 @@
1
+ # 条件
2
+
3
+ 条件(condition)のバリエーションを示します。
4
+
5
+ | 項目名 | キー名 | hash内キー名 | データ型 | 備考 |
6
+ |----------------|---------|--------------|----------|--------------------|
7
+ | 基準日 | date | | Date | 西暦日 |
8
+ | | | | String | 和暦日/西暦日 |
9
+ | 範囲(開始日) | range | start | Date | 西暦日 |
10
+ | | | | String | 和暦日/西暦日 |
11
+ | 範囲(終了日) | | last | Date | 西暦日 |
12
+ | | | | String | 和暦日/西暦日 |
13
+ | 列 | columns | | Array | 取得したい列の列名 |
14
+ | オプション | options | | Hash<String, Object> | 取得オプション |
15
+
16
+ 現時点では `date` と `range` のみ対応中です。
17
+
18
+ ## オプション
19
+
20
+ | 項目名 | キー名 | データ型 | データ | 備考 |
21
+ |--------|-----------|----------|--------|------------------------|
22
+ | 暦 | version | String | Genka | 元嘉暦 |
23
+ | | | | Gihou | 儀鳳暦 |
24
+ | | | | Daien | 大衍暦 |
25
+ | | | | Senmyou | 宣明暦 |
26
+ | | | | Joukyou | 貞享暦 |
27
+ | | | | Kansei | 寛政暦 |
28
+ | | | | Tenpou | 天保暦 |
29
+ | | | | Gregorio | グレゴリオ暦 |
30
+ | | | | | 指定なし(デフォルト) |
31
+ | 没日 | dropped_days | TRUE | | 没日あり |
32
+ | | | FALSE | | 没日なし(デフォルト) |
33
+ | 四季 | seasons | TRUE | | 四季あり |
34
+ | | | FALSE | | 四季なし(デフォルト) |
35
+
36
+ 現時点では宣明暦の [没日](./doc/dropped_date.md) のみ試験的に対応しております(結果未検証)。
data/doc/dropped_date.md CHANGED
@@ -7,6 +7,7 @@
7
7
  「日本暦日便覧」に従う
8
8
 
9
9
  ## 計算
10
+ ### 宣明暦
10
11
  「長慶宣明暦算法」に従う
11
12
 
12
13
  下記は該当箇所の引用と、それに対応する計算を示している
@@ -91,3 +92,43 @@
91
92
  * 大余 + 9
92
93
  * 小余 + 28260
93
94
  * 小余 > 44055 の場合は繰り上げ
95
+
96
+ ## 大衍暦
97
+ 『歴代天文律暦等志彙編 七』に従う
98
+
99
+ ### 本文
100
+
101
+ ```
102
+ 推没日 置有没之氣恆小餘, 以象統乗之, 内秒分, 参而伍之, 以減策實。餘満策餘, 為日。不満, 為没餘。命起也。〔四〕凡恆氣小餘, 不満大衍通法, 如中盈分半法已下, 為有没之氣。
103
+ ```
104
+ p.2056
105
+
106
+ ```
107
+ 大衍通法:三千四十。
108
+ 策實:一百十一萬三百四十三。
109
+ 策餘:一萬五千九百四十三。
110
+ 中盈分:一千三百二十八;秒,十四。
111
+ 象統:二十四。
112
+ ```
113
+ p.2055-2056
114
+
115
+ ### 定数
116
+ 計算方法は宣明暦と変わらない。定数のみ取りだす
117
+
118
+ ### 有没の気判定
119
+
120
+ `大衍通法` (3040) - ( `中盈分` (1328分14秒) / 2) = 3040分 - 664分7秒 = 2375分17秒
121
+
122
+ #### 小余倍率
123
+
124
+ 記載はないが宣明暦と変わらない
125
+
126
+ 360
127
+
128
+ #### 秒倍率
129
+
130
+ 360 / `象統` (24) = `参而伍` (3 * 5) = 15
131
+
132
+ #### 没余上限
133
+
134
+ `策餘` (15943)
data/doc/expection.md ADDED
@@ -0,0 +1,108 @@
1
+ # 期待値
2
+
3
+ 次の期待値を参照します。
4
+
5
+ |対象|文献|
6
+ |:----|:----|
7
+ |暦算値|『日本暦日原典〔第四版〕』|
8
+ |元号|『日本史年表 第5版』|
9
+ |没日・滅日|『日本暦日便覧』|
10
+
11
+ ## 種類
12
+
13
+ 現状は一日検索のみ対応しております。
14
+
15
+ | 項目名 | データ型 |
16
+ |----------|------------------------|
17
+ | 一日検索 | Zakuro::Result::Single |
18
+ | 範囲検索 | Zakuro::Result::Range |
19
+
20
+ ### Zakuro::Result::Single
21
+
22
+ | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考   |
23
+ |----------|-----------|---|---|-----------------------------------|--------|---------------------------------------|
24
+ | 日付情報 | data | | | Zakuro::Result::Data::SingleDay | - | 運用値(計算値は運用情報内を参照のこと)|
25
+ | 運用情報 | operation | | | Zakuro::Result::Operation | - | - |
26
+
27
+ ### Zakuro::Result::Range
28
+
29
+ | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考   |
30
+ |----------|-----------|---|---|---------------------------------------|--------|---------------------------------------|
31
+ | 日リスト | list | | | Array\<Zakuro::Result::Data::Single\> | - | 範囲内の日付情報すべて |
32
+
33
+ ### Zakuro::Result::SingleDay
34
+
35
+ | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
36
+ |--------------------------|--------|------------------|--------------|---------------------------------|------------|----------------------------|
37
+ | 年情報 | year | | | Zakuro::Result::Data::Year | | |
38
+ | 年号 | | first_gengou | | Zakuro::Result::Data::Gengou | | |
39
+ | 元号 | | | name | String | 承平 | |
40
+ | 元号年 | | | number | Integer | 7 | |
41
+ | 年号(南北朝時代の北朝) | | second_gengou | | Zakuro::Result::Data::Gengou | | |
42
+ | 元号 | | | name | String | - | 南北朝時代の北朝のみ |
43
+ | 元号年 | | | number | Integer | - | 南北朝時代の北朝のみ |
44
+ | 年の干支 | | zodiac_name | | String | 丁酉 | |
45
+ | 年の日数 | | total_days | | Integer | 354 | |
46
+ | 月 | month | | | Zakuro::Result::Data::Month | | |
47
+ | 月番号 | | number | | Integer | 1 | x月 |
48
+ | 閏月判定 | | leaped | | True/False | false | 閏月(true)/平月(false) |
49
+ | 月の大小 | | days_name | | String | 大 | 大(30日) / 小(29日) |
50
+ | 月初日 | | first_day | number | Integer | 1 | x日(1日固定) |
51
+ | 月初日の干支 | | | zodiac_name | String | 甲寅 | |
52
+ | 月初日の大余小余 | | | remainder | String | 50-2479 | |
53
+ | 西暦日 | | | western_date | String | 0937-02-13 | |
54
+ | 節気 | | odd_solar_terms | | Zakuro::Result::Data::SolarTerm | | |
55
+ | 二十四節気番号 | | | index | Integer | 5 | 番号(冬至0始まり) |
56
+ | 二十四節気の大余小余 | | | remainder | String | 7-8293 | 大余小余 |
57
+ | 中気 | | even_solar_terms | | Zakuro::Result::Data::SolarTerm | | |
58
+ | 二十四節気番号 | | | index | Integer | 4 | 番号(冬至0始まり) |
59
+ | 二十四節気の大余小余 | | | remainder | String | 52-6457 | 大余小余 |
60
+ | 日 | day | | | Zakuro::Result::Data::Day | | |
61
+ | 日番号 | | number | | Integer | 2 | x日 |
62
+ | 日の干支 | | zodiac_name | | String | 乙卯 | 日の干支 |
63
+ | 日の大余小余 | | remainder | | String | 51-2479 | 大余小余 |
64
+ | 西暦日 | | western_date | | String | 0937-02-14 | 西暦日 |
65
+ | オプション | options | | | Hash<String, Zakuro::Result::Data::Option::AbstractOption>| | オプション値 |
66
+
67
+ ### Zakuro::Result::Operation
68
+
69
+ | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
70
+ |--------------|----------|------------|-------------|--------------------------------------------|---------|----------------------|
71
+ | 運用有無 | operated |   |   | True/False | true |   |
72
+ | 月別履歴情報 | month |   |   | Zakuro::Result::Operation::Month |   |   |
73
+ | 計算値 | original |   |   | Zakuro::Result::Data::SingleDay |   | 運用値差替前の計算値 |
74
+
75
+ ### Zakuro::Result::Operation::Month
76
+
77
+ | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
78
+ |--------------------------|----------|------------|----------|--------------------------------------------|--------------|---------------------------------------------|
79
+ | 月別履歴情報(当月) | current |   |   | Zakuro::Result::Operation::Month::History | |該当月の履歴情報 |
80
+ | 月別履歴情報(親) | parent |   |   | Zakuro::Result::Operation::Month::History |   |前後の月により副次的に影響を受けた時の履歴情報|
81
+
82
+
83
+ ### Zakuro::Result::Operation::Month::History
84
+
85
+ | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
86
+ |-------------------|----------|--------------|-------------|----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|----------------------|
87
+ | ID | | id |   | String | 178-1-1 | zakuro内の一意なID |
88
+ | 月初日の西暦日 | | western_date |   | String | 0937-02-13 | 計算値 |
89
+ | 原文頁数 | | page |   | Integer | 178 |   |
90
+ | 原文注釈番号 | | number |   | Integer | 1 |   |
91
+ | 注釈 | | annotations |   | Array\<Zakuro::Result::Operation::MonthAnnotation\> |   |   |
92
+ | 注釈内容 |   | | description | String | 計算は51乙卯であるが, 日本紀略に甲寅朔とある。<br>正月甲寅朔のユリウス暦日は2月13日となる。(元旦日食 をさけるための変更か) |   |
93
+ | 注釈補記 |   | | note | String | - | 原文訂正 |
94
+
95
+ ### Zakuro::Result::Data::Option::AbstractOption
96
+
97
+ #### Zakuro::Result::Data::Option::DroppedDate::Option
98
+
99
+ キー: dropped_date
100
+
101
+ | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
102
+ | -------------------- | ----------- | ---------- | --------- | ------------------------------------------------------ | -------- | ------------------ |
103
+ | オプション値有無 | matched | | | True/False | true | |
104
+ | 演算値 | calculation | | | Zakuro::Result::Data::Option::DroppedDate::Calculation | | |
105
+ | 没余 | | remainder | | String | 59-34155 | |
106
+ | 二十四節気 | | solar_term | | Zakuro::Result::Data::Option::DroppedDate::SolarTerm | | |
107
+ | 二十四節気番号 | | | index | Integer | 6 | |
108
+ | 二十四節気の大余小余 | | | remainder | String | 49-7203 | |