zakuro 0.9.0 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +50 -178
  3. data/VERSION +1 -1
  4. data/doc/condition.md +38 -0
  5. data/doc/dropped_date.md +41 -0
  6. data/doc/expection.md +119 -0
  7. data/doc/operation/csv/month.csv +4 -4
  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/era/gengou/abstract_scroll.rb +2 -2
  23. data/lib/zakuro/calculation/era/gengou/internal/reserve/abstract_range.rb +5 -5
  24. data/lib/zakuro/calculation/era/gengou/internal/reserve/named_range.rb +1 -1
  25. data/lib/zakuro/calculation/monthly/first_day.rb +9 -1
  26. data/lib/zakuro/calculation/monthly/operated_month.rb +18 -1
  27. data/lib/zakuro/calculation/option/vanished_date/abstract_parameter.rb +40 -0
  28. data/lib/zakuro/calculation/option/vanished_date/location.rb +84 -0
  29. data/lib/zakuro/calculation/range/medieval_annual_range.rb +5 -3
  30. data/lib/zakuro/calculation/range/transfer/gengou_scroller.rb +1 -0
  31. data/lib/zakuro/calculation/stella/lunar/abstract_location.rb +6 -2
  32. data/lib/zakuro/calculation/stella/lunar/choukei_value.rb +14 -0
  33. data/lib/zakuro/calculation/summary/internal/option.rb +71 -9
  34. data/lib/zakuro/context/option.rb +17 -0
  35. data/lib/zakuro/context/version_class_resolver.rb +17 -1
  36. data/lib/zakuro/era/japan/calendar.rb +2 -2
  37. data/lib/zakuro/era/japan/gengou/resource/validator.rb +2 -2
  38. data/lib/zakuro/era/western/calendar.rb +5 -11
  39. data/lib/zakuro/era/western/date_text.rb +40 -0
  40. data/lib/zakuro/gateway/locale/date.rb +2 -2
  41. data/lib/zakuro/operation/month/validator.rb +7 -1
  42. data/lib/zakuro/operation/yaml/month.yaml +14 -14
  43. data/lib/zakuro/result/data/option/vanished_date/calculation.rb +45 -0
  44. data/lib/zakuro/result/data/option/vanished_date/option.rb +47 -0
  45. data/lib/zakuro/result/data/single_day.rb +2 -0
  46. data/lib/zakuro/version/daien/const/number.rb +2 -0
  47. data/lib/zakuro/version/daien/const/remainder.rb +7 -2
  48. data/lib/zakuro/version/daien/cycle/remainder.rb +38 -20
  49. data/lib/zakuro/version/daien/monthly/lunar_phase.rb +2 -4
  50. data/lib/zakuro/version/daien/option/dropped_date/parameter.rb +5 -3
  51. data/lib/zakuro/version/daien/option/vanished_date/parameter.rb +33 -0
  52. data/lib/zakuro/version/daien/stella/lunar/location.rb +5 -8
  53. data/lib/zakuro/version/genka/cycle/remainder.rb +6 -2
  54. data/lib/zakuro/version/genka/monthly/lunar_phase.rb +14 -3
  55. data/lib/zakuro/version/genka/option/vanished_date/parameter.rb +31 -0
  56. data/lib/zakuro/version/gihou/const/remainder.rb +1 -5
  57. data/lib/zakuro/version/gihou/cycle/remainder.rb +0 -26
  58. data/lib/zakuro/version/gihou/monthly/lunar_phase.rb +2 -4
  59. data/lib/zakuro/version/gihou/option/vanished_date/parameter.rb +31 -0
  60. data/lib/zakuro/version/gihou/stella/lunar/location.rb +5 -8
  61. data/lib/zakuro/version/senmyou/const/number.rb +3 -1
  62. data/lib/zakuro/version/senmyou/const/remainder.rb +4 -2
  63. data/lib/zakuro/version/senmyou/cycle/remainder.rb +17 -34
  64. data/lib/zakuro/version/senmyou/monthly/lunar_phase.rb +5 -5
  65. data/lib/zakuro/version/senmyou/option/vanished_date/parameter.rb +33 -0
  66. data/lib/zakuro/version/senmyou/stella/lunar/location.rb +6 -8
  67. data/lib/zakuro/version/senmyou/stella/lunar/value.rb +9 -0
  68. metadata +25 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55eefe338c00e84a3abd4377d3ddbe8663433cb65077bbe169d4cc4b53a9fe74
4
- data.tar.gz: 562c38986fe3dcf2723d7491762a9dc4e23149e6899b5e0b1a4fb78f10ddfa89
3
+ metadata.gz: eef9c974d34a357b894544e6fdd53aa5fd2b33e6586c82dd1358ffc899b1ea7b
4
+ data.tar.gz: 190feb3886ad674687408879ee217a7a9e345c4c18d01df5ab933696ab8c531d
5
5
  SHA512:
6
- metadata.gz: 70eefaeed22b8748ff010bf64b1ef95ac3bac08bc6af2a7cbd0183b13b79ef5af62bb51b5c49197403eda02734d98cf3af71528f59d04c8ba1137f4fdbe2a92e
7
- data.tar.gz: 34005b1a9c792df1251a040f0cf9f012b92256fe5609d95f65e627b405d7c767fbda949fab046a93884819a38907ff7e64bf58cb77b8150a055084721bd67452
6
+ metadata.gz: 0741d6b76105d9d68fb7ecd871020e960069e8c4db157731c516262ee9ff402a269321e9ca977036e04aaa33a9567f372d10263b8b6067929d449cbb6c0a4bb3
7
+ data.tar.gz: e804acf9242d08991f4a6eb92e8f72604b60fc00895257014e87535511bd4cac5a3563fb87cb0bf25fef478e8784c908d76d4953c56343b3ca81e212aee127a2
data/README.md CHANGED
@@ -40,191 +40,41 @@ Or install it yourself as:
40
40
 
41
41
  1日検索/期間検索に対応しております。
42
42
 
43
- 下記表で対応済の暦は使用可能です。
44
-
45
- |開始日|暦 |計算方法|対応|
46
- |:----|:----|:----|:----|
47
- |445/01/24|元嘉暦| |✓|
48
- |698/02/16|儀鳳暦|A|✓|
49
- | | |B|-|
50
- | | |C|-|
51
- |764/02/07|大衍暦|A|✓|
52
- | | |B|-|
53
- | | |C|-|
54
- |862/02/03|宣明暦| |✓|
55
- |1685/02/04|貞享暦| |-|
56
- |1755/02/11|宝暦暦| |-|
57
- |1798/02/16|寛政暦| |-|
58
- |1844/02/18|天保暦| |-|
59
- |1872/12/09|グレゴリオ暦| |-|
43
+ 下記表で暦算ありの暦は使用可能です。
44
+
45
+ |開始日|暦 |計算方法|暦算|没日|滅日|
46
+ |:----|:----|:----|:---|:---|:---|
47
+ |445/01/24|元嘉暦| |✓|-|-|
48
+ |698/02/16|儀鳳暦|A|✓|-|-|
49
+ | | |B|-|-|-|
50
+ | | |C|-|-|-|
51
+ |764/02/07|大衍暦|A|✓|✓|✓|
52
+ | | |B|-|-|-|
53
+ | | |C|-|-|-|
54
+ |862/02/03|宣明暦| |✓|✓|✓|
55
+ |1685/02/04|貞享暦| |-|-|-|
56
+ |1755/02/11|宝暦暦| |-|-|-|
57
+ |1798/02/16|寛政暦| |-|-|-|
58
+ |1844/02/18|天保暦| |-|-|-|
59
+ |1872/12/09|グレゴリオ暦| |-|-|-|
60
+
61
+ 表中A-Cは月の運動の計算手順ごとに分類されます。
62
+
63
+ 現在は「長慶宣明暦算法」の計算手順Aのみ対応しております。
64
+
65
+ 「没日」「滅日」は計算できますが、正誤を確認中です。
60
66
 
61
67
  # 使用方法
62
68
 
63
- ```
64
- require 'zakuro'
65
-
66
- # 西暦日 -> 和暦日への変換方法を示す
67
-
68
- # ざくろ商人(Zakuro::Merchant)に西暦日を渡し、和暦日を受け取る
69
- western_date = Date.new(862, 2, 3)
70
-
71
- # 初期化時の設定
72
- merchant = Zakuro::Merchant.new(condition: { date: western_date })
73
- puts merchant.commit.to_json
74
- # => {"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":{}}}}
75
-
76
- western_date = Date.new(1685, 2, 3)
77
-
78
- # 再設定
79
- # merchant = Zakuro::Merchant.new
80
- merchant.offer(condition: { date: western_date })
81
- puts merchant.commit.to_json
82
- # => {"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":{}}}}
83
-
84
- # 期間検索
85
- merchant = Zakuro::Merchant.new(condition: { range: {start: Date.new(862, 2, 3), last: Date.new(862, 2, 4)}})
86
- puts merchant.commit.to_json
87
- # => {"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":{}}}}]}
88
- ```
69
+ [使用方法](./doc/usage.md) を参照してください。
89
70
 
90
71
  # 条件
91
72
 
92
- 条件(condition)のバリエーションを示します。
93
-
94
- | 項目名 | キー名 | hash内キー名 | データ型 | 備考 |
95
- |----------------|---------|--------------|----------|--------------------|
96
- | 基準日 | date | | Date | 西暦日 |
97
- | | | | String | 和暦日/西暦日 |
98
- | 範囲(開始日) | range | start | Date | 西暦日 |
99
- | | | | String | 和暦日/西暦日 |
100
- | 範囲(終了日) | | last | Date | 西暦日 |
101
- | | | | String | 和暦日/西暦日 |
102
- | 列 | columns | | Array | 取得したい列の列名 |
103
- | オプション | options | | Hash<String, Object> | 取得オプション |
104
-
105
- 現時点では `date` と `range` のみ対応中です。
106
-
107
- ## オプション
108
-
109
- | 項目名 | キー名 | データ型 | データ | 備考 |
110
- |--------|-----------|----------|--------|------------------------|
111
- | 暦 | version | String | Genka | 元嘉暦 |
112
- | | | | Gihou | 儀鳳暦 |
113
- | | | | Daien | 大衍暦 |
114
- | | | | Senmyou | 宣明暦 |
115
- | | | | Joukyou | 貞享暦 |
116
- | | | | Kansei | 寛政暦 |
117
- | | | | Tenpou | 天保暦 |
118
- | | | | Gregorio | グレゴリオ暦 |
119
- | | | | | 指定なし(デフォルト) |
120
- | 没日 | dropped_days | TRUE | | 没日あり |
121
- | | | FALSE | | 没日なし(デフォルト) |
122
- | 四季 | seasons | TRUE | | 四季あり |
123
- | | | FALSE | | 四季なし(デフォルト) |
124
-
125
- 現時点では宣明暦の [没日](./doc/dropped_date.md) のみ試験的に対応しております(結果未検証)。
73
+ [条件](./doc/condition.md) を参照してください。
126
74
 
127
75
  # 期待値
128
- 暦算値は『日本暦日原典』、元号の切り替えは『日本史年表 第5版』を範とします。
129
-
130
- ## 種類
131
-
132
- 現状は一日検索のみ対応しております。
133
-
134
- | 項目名 | データ型 |
135
- |----------|------------------------|
136
- | 一日検索 | Zakuro::Result::Single |
137
- | 範囲検索 | Zakuro::Result::Range |
138
-
139
- ### Zakuro::Result::Single
140
-
141
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考   |
142
- |----------|-----------|---|---|-----------------------------------|--------|---------------------------------------|
143
- | 日付情報 | data | | | Zakuro::Result::Data::SingleDay | - | 運用値(計算値は運用情報内を参照のこと)|
144
- | 運用情報 | operation | | | Zakuro::Result::Operation | - | - |
145
-
146
- ### Zakuro::Result::Range
147
-
148
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考   |
149
- |----------|-----------|---|---|---------------------------------------|--------|---------------------------------------|
150
- | 日リスト | list | | | Array\<Zakuro::Result::Data::Single\> | - | 範囲内の日付情報すべて |
151
-
152
- ### Zakuro::Result::SingleDay
153
-
154
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
155
- |--------------------------|--------|------------------|--------------|---------------------------------|------------|----------------------------|
156
- | 年情報 | year | | | Zakuro::Result::Data::Year | | |
157
- | 年号 | | first_gengou | | Zakuro::Result::Data::Gengou | | |
158
- | 元号 | | | name | String | 承平 | |
159
- | 元号年 | | | number | Integer | 7 | |
160
- | 年号(南北朝時代の北朝) | | second_gengou | | Zakuro::Result::Data::Gengou | | |
161
- | 元号 | | | name | String | - | 南北朝時代の北朝のみ |
162
- | 元号年 | | | number | Integer | - | 南北朝時代の北朝のみ |
163
- | 年の干支 | | zodiac_name | | String | 丁酉 | |
164
- | 年の日数 | | total_days | | Integer | 354 | |
165
- | 月 | month | | | Zakuro::Result::Data::Month | | |
166
- | 月番号 | | number | | Integer | 1 | x月 |
167
- | 閏月判定 | | leaped | | True/False | false | 閏月(true)/平月(false) |
168
- | 月の大小 | | days_name | | String | 大 | 大(30日) / 小(29日) |
169
- | 月初日 | | first_day | number | Integer | 1 | x日(1日固定) |
170
- | 月初日の干支 | | | zodiac_name | String | 甲寅 | |
171
- | 月初日の大余小余 | | | remainder | String | 50-2479 | |
172
- | 西暦日 | | | western_date | String | 0937-02-13 | |
173
- | 節気 | | odd_solar_terms | | Zakuro::Result::Data::SolarTerm | | |
174
- | 二十四節気番号 | | | index | Integer | 5 | 番号(冬至0始まり) |
175
- | 二十四節気の大余小余 | | | remainder | String | 7-8293 | 大余小余 |
176
- | 中気 | | even_solar_terms | | Zakuro::Result::Data::SolarTerm | | |
177
- | 二十四節気番号 | | | index | Integer | 4 | 番号(冬至0始まり) |
178
- | 二十四節気の大余小余 | | | remainder | String | 52-6457 | 大余小余 |
179
- | 日 | day | | | Zakuro::Result::Data::Day | | |
180
- | 日番号 | | number | | Integer | 2 | x日 |
181
- | 日の干支 | | zodiac_name | | String | 乙卯 | 日の干支 |
182
- | 日の大余小余 | | remainder | | String | 51-2479 | 大余小余 |
183
- | 西暦日 | | western_date | | String | 0937-02-14 | 西暦日 |
184
- | オプション | options | | | Hash<String, Zakuro::Result::Data::Option::AbstractOption>| | オプション値 |
185
-
186
- ### Zakuro::Result::Operation
187
-
188
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
189
- |--------------|----------|------------|-------------|--------------------------------------------|---------|----------------------|
190
- | 運用有無 | operated |   |   | True/False | true |   |
191
- | 月別履歴情報 | month |   |   | Zakuro::Result::Operation::Month |   |   |
192
- | 計算値 | original |   |   | Zakuro::Result::Data::SingleDay |   | 運用値差替前の計算値 |
193
-
194
- ### Zakuro::Result::Operation::Month
195
-
196
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
197
- |--------------------------|----------|------------|----------|--------------------------------------------|--------------|---------------------------------------------|
198
- | 月別履歴情報(当月) | current |   |   | Zakuro::Result::Operation::Month::History | |該当月の履歴情報 |
199
- | 月別履歴情報(親) | parent |   |   | Zakuro::Result::Operation::Month::History |   |前後の月により副次的に影響を受けた時の履歴情報|
200
-
201
-
202
- ### Zakuro::Result::Operation::Month::History
203
-
204
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
205
- |-------------------|----------|--------------|-------------|----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|----------------------|
206
- | ID | | id |   | String | 178-1-1 | zakuro内の一意なID |
207
- | 月初日の西暦日 | | western_date |   | String | 0937-02-13 | 計算値 |
208
- | 原文頁数 | | page |   | Integer | 178 |   |
209
- | 原文注釈番号 | | number |   | Integer | 1 |   |
210
- | 注釈 | | annotations |   | Array\<Zakuro::Result::Operation::MonthAnnotation\> |   |   |
211
- | 注釈内容 |   | | description | String | 計算は51乙卯であるが, 日本紀略に甲寅朔とある。<br>正月甲寅朔のユリウス暦日は2月13日となる。(元旦日食 をさけるための変更か) |   |
212
- | 注釈補記 |   | | note | String | - | 原文訂正 |
213
-
214
- ### Zakuro::Result::Data::Option::AbstractOption
215
-
216
- #### Zakuro::Result::Data::Option::DroppedDate::Option
217
-
218
- キー: dropped_date
219
-
220
- | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
221
- | -------------------- | ----------- | ---------- | --------- | ------------------------------------------------------ | -------- | ------------------ |
222
- | オプション値有無 | matched | | | True/False | true | |
223
- | 演算値 | calculation | | | Zakuro::Result::Data::Option::DroppedDate::Calculation | | |
224
- | 没余 | | remainder | | String | 59-34155 | |
225
- | 二十四節気 | | solar_term | | Zakuro::Result::Data::Option::DroppedDate::SolarTerm | | |
226
- | 二十四節気番号 | | | index | Integer | 6 | |
227
- | 二十四節気の大余小余 | | | remainder | String | 49-7203 | |
76
+
77
+ [期待値](./doc/expection.md) を参照してください。
228
78
 
229
79
  # 元号
230
80
 
@@ -233,11 +83,33 @@ puts merchant.commit.to_json
233
83
  # 運用値
234
84
 
235
85
  一部の月では計算値から運用値への書き換えが発生します。
86
+
236
87
  経緯は [実運用](./doc/operation.md) を参照してください。
237
88
 
238
89
  # 暦算
239
90
 
240
- [宣明暦](./lib/zakuro/version/senmyou/README.md) のみ記載しております。
91
+ 暦算の解説は次の通りです。
92
+
93
+ ## 暦別
94
+
95
+ |暦 |有無|
96
+ |:----|:----|
97
+ |[元嘉暦](./doc/version/genka.md)|✓|
98
+ |[儀鳳暦](./doc/version/gihou.md)|✓|
99
+ |[大衍暦](./doc/version/daien.md)|✓|
100
+ |[宣明暦](./doc/version/senmyou.md)|✓|
101
+ |貞享暦|-|
102
+ |宝暦暦|-|
103
+ |寛政暦|-|
104
+ |天保暦|-|
105
+ |グレゴリオ暦|-|
106
+
107
+ ## 項目別
108
+
109
+ |項目 |有無|
110
+ |:----|:----|
111
+ |[没日](./doc/dropped_date.md)|✓|
112
+ |滅日|-|
241
113
 
242
114
  # 例外
243
115
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.0
1
+ 0.9.2
data/doc/condition.md ADDED
@@ -0,0 +1,38 @@
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
+ 現時点では次の項目を試験的に対応しております(結果未検証)。
37
+ * [没日](./dropped_date.md)
38
+ * [滅日](./vanished_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,119 @@
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 | |
109
+
110
+ #### Zakuro::Result::Data::Option::VanishedDate::Option
111
+
112
+ キー: vanished_date
113
+
114
+ | 項目名 | キー名 | - | - | データ型 | 参考値 | 備考 |
115
+ | -------------------- | ----------- | ---------- | --------- | ------------------------------------------------------ | -------- | ------------------ |
116
+ | オプション値有無 | matched | | | True/False | true | |
117
+ | 演算値 | calculation | | | Zakuro::Result::Data::Option::VanishedDate::Calculation | | |
118
+ | 滅余 | | remainder | | String | 33-2666 | |
119
+ | 経朔 | | average_remainder | | String | 5-3769 | |
@@ -364,8 +364,8 @@
364
364
  ,228-1-1,-,-,228,1,1089-2-14,寛治 3年 1 大 壬申 9-6402,"計算では9癸酉であるが, 四大を避けるため壬申朔となった。正月壬申朔のユリウス暦日は2月13日。(大日本史料第3編の1; 中右記・扶桑略記・後二条師通記)。",-,true,四大回避,-,-,大,大,-,-,-,-,-,-,癸酉,壬申,1089-2-14,1089-2-13,9,8,-1,-1,-,-,-
365
365
  ,230-1-a,-,230-1-1,230,-,1095-1-9,嘉保 1年 12 小 戊辰 4-3361,-,-,true,次月大小,-,-,大,小,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
366
366
  ,230-1-1,-,-,230,1,1095-2-8,嘉保 2年 1 大 丁酉 34-7200,"計算では34戊戌であるが, 中右記により丁酉朔, 正月丁酉朔のユリウス暦日は2月7日。これは嘉保元年の年間日数が385日になるのを避けるための変更である。",-,true,年日数,-,-,小,大,-,-,-,-,-,-,戊戌,丁酉,1095-2-8,1095-2-7,34,33,-1,-1,-,-,-
367
- ,242-1-a,-,242-1-1,242,-,1129-8-17,大治 4年 閏7 小 丁未 43-1179,-,-,true,次月大小,-,-,大,小,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
368
- ,242-1-1,-,-,242,1,1129-9-16,大治 4年 8 大 丙子 13-6547,"計算は13丁丑であるが中右記により丙子, 8月丙子朔のユリウス暦日は9月15日となる。これは皇和通暦で中根元圭が「章首の後, 閏法もし8月を得ればまた必ず大小を消息してこれを7月に退く」と書いてあるように, このあとも何回かこの理由で干支が変更され, 閏が8月から7月に移された。これを退閏という。",-,true,退閏,-,-,大,大,-,-,-,-,-,-,丁丑,丙子,1129-9-16,1129-9-15,13,12,-1,-1,-,-,-
367
+ ,242-1-a,-,242-1-1,242,-,1129-8-17,大治 4年 閏7 小 丁未 43-1179,-,-,true,次月大小,8月,閏7月,大,小,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
368
+ ,242-1-1,-,-,242,1,1129-9-16,大治 4年 8 大 丙子 13-6547,"計算は13丁丑であるが中右記により丙子, 8月丙子朔のユリウス暦日は9月15日となる。これは皇和通暦で中根元圭が「章首の後, 閏法もし8月を得ればまた必ず大小を消息してこれを7月に退く」と書いてあるように, このあとも何回かこの理由で干支が変更され, 閏が8月から7月に移された。これを退閏という。",-,true,退閏,閏8月,8月,大,大,-,-,-,-,-,-,丁丑,丙子,1129-9-16,1129-9-15,13,12,-1,-1,-,-,-
369
369
  ,245-1-a,-,245-1-1,245,-,1138-1-13,保延 3年 12 小 戊午 54-2825,-,-,true,次月大小,-,-,大,小,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
370
370
  ,245-1-1,-,-,245,1,1138-2-12,保延 4年 1 大 丁亥 24-6432,"計算では24戊子であるが中右記により丁亥, 正月丁亥朔のユリウス暦日は2月11日となる。保延3年の年間日数の385日になるのを避けるためである。",-,true,年日数,-,-,小,大,-,-,-,-,-,-,戊子,丁亥,1138-2-12,1138-2-11,24,23,-1,-1,-,-,-
371
371
  ,251-1-a,-,251-1-1,251,-,1156-11-15,保元 1年 10 小 己亥 35-1816,-,-,true,次月大小,-,-,大,小,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
@@ -469,8 +469,8 @@
469
469
  ,346-0-1,-,-,346,-,1441-12-14/1442-1-13,-,計算では朔旦冬至となる。これを臨時朔旦冬至として避けるために甲子を癸亥にして冬至を11月2日にしたもの。12月の変更は計算通り甲午にしておくと11月が31日になってしまうから。,-,false,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
470
470
  ,348-1-a,-,348-1-1,348,-,1449-10-17,宝徳 1年 10 小 戊申 44-2244,-,-,true,次月大小,-,-,大,小,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
471
471
  ,348-1-1,348-0-1,-,348,1,1449-11-16,宝徳 1年 閏10 小 丁丑 14-22,"計算では14戊寅, 康富記により丁丑, 閏10月丁丑朔のユリウス暦日は11月15日となる。",-,true,朔旦冬至,11月,閏10月,小,小,0,-,-,-,1449-12-15,-,戊寅,丁丑,1449-11-16,1449-11-15,14,13,-1,-1,-,-,-
472
- ,348-2-1,348-0-1,-,348,2,1449-12-15,宝徳 1年 11 大 丙午 43-5895,"計算では43丁未, 康富記により丙午, 11月丙午朔のユリウス暦日は12月14日となる。",-,true,朔旦冬至,閏11月,11月,大,大,-,0,-,-,-,1449-11-16,丁未,丙午,1449-12-15,1449-12-14,43,42,-1,-1,-,-,-
473
- ,348-3-1,348-0-1,-,348,3,1450-1-14,宝徳 1年 12 大 丙子 13-2995,"計算では13丁丑, 康富記により丙子, 12月丙子朔のユリウス暦日は1月13日となる。",-,true,朔旦冬至,-,-,大,大,-,-,-,-,-,-,丁丑,丙子,1450-1-14,1450-1-13,13,12,-1,-1,-,-,-
472
+ ,348-2-1,348-0-1,-,348,2,1449-12-15,宝徳 1年 11 大 丙午 43-5895,"計算では43丁未, 康富記により丙午, 11月丙午朔のユリウス暦日は12月14日となる。",-,true,朔旦冬至,12月,11月,大,大,-,0,-,-,-,1449-11-16,丁未,丙午,1449-12-15,1449-12-14,43,42,-1,-1,-,-,-
473
+ ,348-3-1,348-0-1,-,348,3,1450-1-14,宝徳 1年 12 大 丙子 13-2995,"計算では13丁丑, 康富記により丙子, 12月丙子朔のユリウス暦日は1月13日となる。",-,true,朔旦冬至,閏12月,12月,大,大,-,-,-,-,-,-,丁丑,丙子,1450-1-14,1450-1-13,13,12,-1,-1,-,-,-
474
474
  ,348-0-1,-,-,348,-,1449-11-16/1450-2-13,-,"計算では冬至が11月晦日になるのを, 強いて朔旦冬至にするため計算の12月丁未朔を11月丙午朔に変え閏を10月に移動させた。閏10月朔を計算通り戊寅朔にしておくと閏10月は28日しかなくなってしまう。11月朔丙午, 翌宝徳2年2月丙子とからその間の12月正月の干支は丙子, 丙子に変えないと31日の月ができてしまう。",-,false,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
475
475
  ,349-1-1,348-0-1,-,349,1,1450-2-13,宝徳 2年 1 大 丙午 43-7539,"計算では13丁未, 康富記により丙午, 正月丙午朔のユリウス暦日は2月12日となる。(前項の注記参照)",日本暦日原典の誤り。「丁未」ではなく「丁丑」,true,朔旦冬至,-,-,小,大,-,-,-,-,-,-,丁未,丙午,1450-2-13,1450-2-12,43,42,-1,-1,-,-,-
476
476
  ,355-1-a,-,355-1-1,355,-,1468-10-16,応仁 2年 10 大 丁亥 23-4972,-,変更なし,false,次月大小,-,-,大,大,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-
Binary file