zakuro 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +30 -160
- data/VERSION +1 -1
- data/doc/condition.md +36 -0
- data/doc/dropped_date.md +41 -0
- data/doc/expection.md +108 -0
- data/doc/usage.md +120 -0
- data/doc/vanished_date.md +86 -0
- data/doc/version/daien.md +163 -0
- data/doc/version/genka.md +116 -0
- data/doc/version/gihou.md +172 -0
- data/doc/version/section/common_post_process.md +60 -0
- data/doc/version/section/common_pre_process.md +185 -0
- data/doc/version/section/const.md +45 -0
- data/doc/version/section/decimal.md +101 -0
- data/doc/version/section/lunisolar_calendar.md +55 -0
- data/doc/version/section/senmyou_november_1st.md +41 -0
- data/{lib/zakuro/version/senmyou/README.md → doc/version/senmyou.md} +15 -168
- data/lib/zakuro/calculation/cycle/abstract_remainder.rb +58 -0
- data/lib/zakuro/calculation/monthly/first_day.rb +9 -1
- data/lib/zakuro/calculation/option/vanished_date/abstract_parameter.rb +40 -0
- data/lib/zakuro/calculation/option/vanished_date/location.rb +84 -0
- data/lib/zakuro/calculation/range/medieval_annual_range.rb +5 -3
- data/lib/zakuro/calculation/range/transfer/gengou_scroller.rb +1 -0
- data/lib/zakuro/calculation/stella/lunar/abstract_location.rb +6 -2
- data/lib/zakuro/calculation/stella/lunar/choukei_value.rb +14 -0
- data/lib/zakuro/calculation/summary/internal/option.rb +59 -4
- data/lib/zakuro/context/option.rb +17 -0
- data/lib/zakuro/context/version_class_resolver.rb +17 -1
- data/lib/zakuro/result/data/option/vanished_date/calculation.rb +45 -0
- data/lib/zakuro/result/data/option/vanished_date/option.rb +47 -0
- data/lib/zakuro/result/data/single_day.rb +2 -0
- data/lib/zakuro/version/daien/const/number.rb +2 -0
- data/lib/zakuro/version/daien/const/remainder.rb +7 -2
- data/lib/zakuro/version/daien/cycle/remainder.rb +38 -20
- data/lib/zakuro/version/daien/monthly/lunar_phase.rb +2 -4
- data/lib/zakuro/version/daien/option/dropped_date/parameter.rb +5 -3
- data/lib/zakuro/version/daien/option/vanished_date/parameter.rb +33 -0
- data/lib/zakuro/version/daien/stella/lunar/location.rb +5 -8
- data/lib/zakuro/version/genka/cycle/remainder.rb +6 -2
- data/lib/zakuro/version/genka/monthly/lunar_phase.rb +14 -3
- data/lib/zakuro/version/genka/option/vanished_date/parameter.rb +31 -0
- data/lib/zakuro/version/gihou/const/remainder.rb +1 -5
- data/lib/zakuro/version/gihou/cycle/remainder.rb +0 -26
- data/lib/zakuro/version/gihou/monthly/lunar_phase.rb +2 -4
- data/lib/zakuro/version/gihou/option/vanished_date/parameter.rb +31 -0
- data/lib/zakuro/version/gihou/stella/lunar/location.rb +5 -8
- data/lib/zakuro/version/senmyou/const/number.rb +3 -1
- data/lib/zakuro/version/senmyou/const/remainder.rb +4 -2
- data/lib/zakuro/version/senmyou/cycle/remainder.rb +17 -34
- data/lib/zakuro/version/senmyou/monthly/lunar_phase.rb +5 -5
- data/lib/zakuro/version/senmyou/option/vanished_date/parameter.rb +33 -0
- data/lib/zakuro/version/senmyou/stella/lunar/location.rb +6 -8
- data/lib/zakuro/version/senmyou/stella/lunar/value.rb +9 -0
- metadata +24 -3
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../../calculation/option/vanished_date/abstract_parameter'
|
4
|
+
|
5
|
+
require_relative '../../const/number'
|
6
|
+
require_relative '../../const/remainder'
|
7
|
+
require_relative '../../cycle/remainder'
|
8
|
+
|
9
|
+
# :nodoc:
|
10
|
+
module Zakuro
|
11
|
+
# :nodoc:
|
12
|
+
module Gihou
|
13
|
+
# :nodoc:
|
14
|
+
module Option
|
15
|
+
# :nodoc:
|
16
|
+
module VanishedDate
|
17
|
+
#
|
18
|
+
# Parameter 引数
|
19
|
+
#
|
20
|
+
class Parameter < Calculation::Option::VanishedDate::AbstractParameter
|
21
|
+
#
|
22
|
+
# 初期化
|
23
|
+
#
|
24
|
+
def initialize
|
25
|
+
super(valid: false)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -28,7 +28,11 @@ module Zakuro
|
|
28
28
|
# @param [Integer] western_year 西暦年
|
29
29
|
#
|
30
30
|
def initialize(lunar_age:, western_year:)
|
31
|
-
super(
|
31
|
+
super(
|
32
|
+
lunar_age: lunar_age,
|
33
|
+
quarter: QUARTER,
|
34
|
+
western_year: western_year
|
35
|
+
)
|
32
36
|
end
|
33
37
|
|
34
38
|
#
|
@@ -43,13 +47,6 @@ module Zakuro
|
|
43
47
|
first
|
44
48
|
end
|
45
49
|
|
46
|
-
#
|
47
|
-
# 弦の分だけ月地点を進める
|
48
|
-
#
|
49
|
-
def add_quarter
|
50
|
-
remainder.add!(QUARTER)
|
51
|
-
end
|
52
|
-
|
53
50
|
private
|
54
51
|
|
55
52
|
#
|
@@ -30,10 +30,12 @@ module Zakuro
|
|
30
30
|
# Derivation 導出
|
31
31
|
#
|
32
32
|
module Derivation
|
33
|
-
# @return [Integer] 通余:
|
33
|
+
# @return [Integer] 通余: (YEAR - DAY * 12 * 30) = 44055
|
34
34
|
REMAINDER_ALL_YEAR = 44_055
|
35
35
|
# @return [Integer] 旬周(60日) DAY * 60
|
36
36
|
SIXTY_DAYS = 504_000
|
37
|
+
# @return [Integer] 朔虚分: (30 * 8400) % 248057
|
38
|
+
REMAINDER_IDEAL_MONTH = 3943
|
37
39
|
end
|
38
40
|
|
39
41
|
#
|
@@ -30,6 +30,9 @@ module Zakuro
|
|
30
30
|
# * 中盈(小余3671秒2)/ 2 = 小余1835秒5
|
31
31
|
# * 日(小余8400) - 小余1835秒5 = 小余6564秒3
|
32
32
|
DROPPED_DATE_LIMIT = Cycle::Remainder.new(day: 0, minute: 6564, second: 3)
|
33
|
+
|
34
|
+
# @return [Cycle::Remainder] 有滅判定
|
35
|
+
VANISHED_DATE_LIMIT = Cycle::Remainder.new(day: 0, minute: 3943, second: 0)
|
33
36
|
end
|
34
37
|
|
35
38
|
#
|
@@ -44,8 +47,7 @@ module Zakuro
|
|
44
47
|
# @note 章月 248057 = 29-4457
|
45
48
|
#
|
46
49
|
# @return [Cycle::LunarRemainder] 弦(1分=100秒)
|
47
|
-
|
48
|
-
QUARTER = Cycle::LunarRemainder.new(day: 7, minute: 3214, second: 25.00546)
|
50
|
+
QUARTER = Cycle::LunarRemainder.new(day: 7, minute: 3214, second: 25)
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
@@ -29,19 +29,6 @@ module Zakuro
|
|
29
29
|
super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
|
30
30
|
day: day, minute: minute, second: second, total: total)
|
31
31
|
end
|
32
|
-
|
33
|
-
#
|
34
|
-
# 特定の文字フォーマットにして出力する
|
35
|
-
#
|
36
|
-
# @param [String] form フォーマット(大余、小余、秒それぞれを%dで指定する)
|
37
|
-
#
|
38
|
-
# @return [String] フォーマットした結果
|
39
|
-
#
|
40
|
-
def format(form: '%d-%d')
|
41
|
-
return '' if invalid?
|
42
|
-
|
43
|
-
super(form, @day, @minute, @second)
|
44
|
-
end
|
45
32
|
end
|
46
33
|
|
47
34
|
#
|
@@ -63,19 +50,6 @@ module Zakuro
|
|
63
50
|
super(base_day: Const::Number::Cycle::DAY, base_minute: MINUTE,
|
64
51
|
day: day, minute: minute, second: second, total: total)
|
65
52
|
end
|
66
|
-
|
67
|
-
#
|
68
|
-
# 特定の文字フォーマットにして出力する
|
69
|
-
#
|
70
|
-
# @param [String] form フォーマット(大余、小余、秒それぞれを%dで指定する)
|
71
|
-
#
|
72
|
-
# @return [String] フォーマットした結果
|
73
|
-
#
|
74
|
-
def format(form: '%d-%d')
|
75
|
-
return '' if invalid?
|
76
|
-
|
77
|
-
super(form, @day, @minute, @second)
|
78
|
-
end
|
79
53
|
end
|
80
54
|
|
81
55
|
#
|
@@ -98,18 +72,27 @@ module Zakuro
|
|
98
72
|
super(base_day: Const::Number::Derivation::REMAINDER_ALL_YEAR, base_minute: MINUTE,
|
99
73
|
day: day, minute: minute, second: second, total: total)
|
100
74
|
end
|
75
|
+
end
|
76
|
+
|
77
|
+
#
|
78
|
+
# VanishedRemainder 滅日の計算向け時刻情報(滅余)
|
79
|
+
#
|
80
|
+
class VanishedRemainder < Calculation::Cycle::AbstractRemainder
|
81
|
+
# @return [Integer] 分(1分=8秒)
|
82
|
+
MINUTE = 8
|
101
83
|
|
102
84
|
#
|
103
|
-
#
|
104
|
-
#
|
105
|
-
# @param [String] form フォーマット(大余、小余、秒それぞれを%dで指定する)
|
85
|
+
# 初期化
|
106
86
|
#
|
107
|
-
# @
|
87
|
+
# @param [Integer] day 大余("日"に相当)
|
88
|
+
# @param [Integer] minute 小余("分"に相当)
|
89
|
+
# @param [Integer] second 秒
|
90
|
+
# @param [Integer] total 繰り上げなしの小余
|
108
91
|
#
|
109
|
-
def
|
110
|
-
|
111
|
-
|
112
|
-
|
92
|
+
def initialize(day: -1, minute: -1, second: -1, total: -1)
|
93
|
+
# 小余 = 朔虚分
|
94
|
+
super(base_day: Const::Number::Derivation::REMAINDER_IDEAL_MONTH, base_minute: MINUTE,
|
95
|
+
day: day, minute: minute, second: second, total: total)
|
113
96
|
end
|
114
97
|
end
|
115
98
|
end
|
@@ -55,7 +55,7 @@ module Zakuro
|
|
55
55
|
# @return [Remainder] 定朔
|
56
56
|
#
|
57
57
|
def current_remainder
|
58
|
-
debug("average_remainder.format: #{average_remainder.format}")
|
58
|
+
# debug("average_remainder.format: #{average_remainder.format}")
|
59
59
|
|
60
60
|
sum = correction_value
|
61
61
|
adjusted = average_remainder.add(
|
@@ -63,7 +63,7 @@ module Zakuro
|
|
63
63
|
)
|
64
64
|
adjusted.up_on_new_moon!
|
65
65
|
|
66
|
-
debug("result: #{adjusted.format}")
|
66
|
+
debug("result: #{adjusted.format(form: '%d-%d.%.5f')}")
|
67
67
|
|
68
68
|
adjusted
|
69
69
|
end
|
@@ -75,8 +75,8 @@ module Zakuro
|
|
75
75
|
#
|
76
76
|
def correction_solar_value
|
77
77
|
solar_location.run
|
78
|
-
debug("solar_term.remainder: #{solar_location.remainder.format(form: '%d-%d
|
79
|
-
debug("solar_term.index: #{solar_location.index}")
|
78
|
+
# debug("solar_term.remainder: #{solar_location.remainder.format(form: '%d-%d.%.5f')}")
|
79
|
+
# debug("solar_term.index: #{solar_location.index}")
|
80
80
|
|
81
81
|
Solar::Value.get(solar_location: solar_location)
|
82
82
|
end
|
@@ -94,7 +94,7 @@ module Zakuro
|
|
94
94
|
remainder = lunar_location.adjusted_remainder
|
95
95
|
forward = lunar_location.forward
|
96
96
|
|
97
|
-
debug("[lunar]remainder.format: #{remainder.format}")
|
97
|
+
debug("[lunar]remainder.format: #{remainder.format(form: '%d-%d.%.5f')}")
|
98
98
|
debug("[lunar]forward: #{forward}")
|
99
99
|
|
100
100
|
Lunar::Value.get(remainder: remainder, forward: forward)
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../../calculation/option/vanished_date/abstract_parameter'
|
4
|
+
|
5
|
+
require_relative '../../const/number'
|
6
|
+
require_relative '../../const/remainder'
|
7
|
+
require_relative '../../cycle/remainder'
|
8
|
+
|
9
|
+
# :nodoc:
|
10
|
+
module Zakuro
|
11
|
+
# :nodoc:
|
12
|
+
module Senmyou
|
13
|
+
# :nodoc:
|
14
|
+
module Option
|
15
|
+
# :nodoc:
|
16
|
+
module VanishedDate
|
17
|
+
#
|
18
|
+
# Parameter 引数
|
19
|
+
#
|
20
|
+
class Parameter < Calculation::Option::VanishedDate::AbstractParameter
|
21
|
+
#
|
22
|
+
# 初期化
|
23
|
+
#
|
24
|
+
def initialize
|
25
|
+
super(valid: true,
|
26
|
+
limit: Const::Remainder::Solar::VANISHED_DATE_LIMIT,
|
27
|
+
remainder_class: Cycle::VanishedRemainder)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -32,7 +32,12 @@ module Zakuro
|
|
32
32
|
# @param [Integer] western_year 西暦年
|
33
33
|
#
|
34
34
|
def initialize(lunar_age:, western_year:)
|
35
|
-
super(
|
35
|
+
super(
|
36
|
+
lunar_age: lunar_age,
|
37
|
+
quarter: QUARTER,
|
38
|
+
western_year: western_year
|
39
|
+
)
|
40
|
+
|
36
41
|
# 進
|
37
42
|
@forward = true
|
38
43
|
end
|
@@ -49,13 +54,6 @@ module Zakuro
|
|
49
54
|
first
|
50
55
|
end
|
51
56
|
|
52
|
-
#
|
53
|
-
# 弦の分だけ月地点を進める
|
54
|
-
#
|
55
|
-
def add_quarter
|
56
|
-
remainder.add!(QUARTER)
|
57
|
-
end
|
58
|
-
|
59
57
|
private
|
60
58
|
|
61
59
|
#
|
@@ -16,6 +16,9 @@ module Zakuro
|
|
16
16
|
# Value 月補正値
|
17
17
|
#
|
18
18
|
module Value
|
19
|
+
# @return [Output::Logger] ロガー
|
20
|
+
LOGGER = Output::Logger.new(location: 'lunar_value')
|
21
|
+
|
19
22
|
# :reek:TooManyStatements { max_statements: 9 }
|
20
23
|
|
21
24
|
class << self
|
@@ -39,12 +42,18 @@ module Zakuro
|
|
39
42
|
|
40
43
|
value = row.value
|
41
44
|
|
45
|
+
# LOGGER.debug("value.per: #{value.per}")
|
46
|
+
# LOGGER.debug("row.denominator: #{row.denominator}")
|
47
|
+
# LOGGER.debug("value.stack: #{value.stack}")
|
48
|
+
|
42
49
|
minus_minute = Adjustment.minus_minute(day: day, minute: minute)
|
43
50
|
|
44
51
|
day = Calculation::Lunar::ChoukeiValue.rounded_day(
|
45
52
|
per: value.per, denominator: row.denominator, minute: minus_minute
|
46
53
|
)
|
47
54
|
|
55
|
+
# LOGGER.debug("day: #{day}")
|
56
|
+
|
48
57
|
value.stack + day
|
49
58
|
end
|
50
59
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zakuro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pldb
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: mainly lunar solar calendar
|
14
14
|
email:
|
@@ -29,13 +29,27 @@ files:
|
|
29
29
|
- VERSION
|
30
30
|
- bin/console
|
31
31
|
- bin/setup
|
32
|
+
- doc/condition.md
|
32
33
|
- doc/dropped_date.md
|
33
34
|
- doc/error.md
|
35
|
+
- doc/expection.md
|
34
36
|
- doc/gengou.md
|
35
37
|
- doc/operation.md
|
36
38
|
- doc/operation/csv/month.csv
|
37
39
|
- doc/operation/operation.xlsx
|
38
40
|
- doc/operation/transfer.rb
|
41
|
+
- doc/usage.md
|
42
|
+
- doc/vanished_date.md
|
43
|
+
- doc/version/daien.md
|
44
|
+
- doc/version/genka.md
|
45
|
+
- doc/version/gihou.md
|
46
|
+
- doc/version/section/common_post_process.md
|
47
|
+
- doc/version/section/common_pre_process.md
|
48
|
+
- doc/version/section/const.md
|
49
|
+
- doc/version/section/decimal.md
|
50
|
+
- doc/version/section/lunisolar_calendar.md
|
51
|
+
- doc/version/section/senmyou_november_1st.md
|
52
|
+
- doc/version/senmyou.md
|
39
53
|
- images/12月以降の入定気.png
|
40
54
|
- images/12月以降の月の進退.png
|
41
55
|
- images/source/description.numbers
|
@@ -78,6 +92,8 @@ files:
|
|
78
92
|
- lib/zakuro/calculation/monthly/operated_solar_term.rb
|
79
93
|
- lib/zakuro/calculation/option/dropped_date/abstract_parameter.rb
|
80
94
|
- lib/zakuro/calculation/option/dropped_date/location.rb
|
95
|
+
- lib/zakuro/calculation/option/vanished_date/abstract_parameter.rb
|
96
|
+
- lib/zakuro/calculation/option/vanished_date/location.rb
|
81
97
|
- lib/zakuro/calculation/range/abstract_full_range.rb
|
82
98
|
- lib/zakuro/calculation/range/abstract_operation_range.rb
|
83
99
|
- lib/zakuro/calculation/range/dated_full_range.rb
|
@@ -154,6 +170,8 @@ files:
|
|
154
170
|
- lib/zakuro/result/data/option/dropped_date/calculation.rb
|
155
171
|
- lib/zakuro/result/data/option/dropped_date/option.rb
|
156
172
|
- lib/zakuro/result/data/option/dropped_date/solar_term.rb
|
173
|
+
- lib/zakuro/result/data/option/vanished_date/calculation.rb
|
174
|
+
- lib/zakuro/result/data/option/vanished_date/option.rb
|
157
175
|
- lib/zakuro/result/data/single_day.rb
|
158
176
|
- lib/zakuro/result/data/solar_term.rb
|
159
177
|
- lib/zakuro/result/data/year.rb
|
@@ -172,6 +190,7 @@ files:
|
|
172
190
|
- lib/zakuro/version/daien/daien.rb
|
173
191
|
- lib/zakuro/version/daien/monthly/lunar_phase.rb
|
174
192
|
- lib/zakuro/version/daien/option/dropped_date/parameter.rb
|
193
|
+
- lib/zakuro/version/daien/option/vanished_date/parameter.rb
|
175
194
|
- lib/zakuro/version/daien/range/annual_range.rb
|
176
195
|
- lib/zakuro/version/daien/stella/lunar/adjustment.rb
|
177
196
|
- lib/zakuro/version/daien/stella/lunar/localization.rb
|
@@ -192,6 +211,7 @@ files:
|
|
192
211
|
- lib/zakuro/version/genka/genka.rb
|
193
212
|
- lib/zakuro/version/genka/monthly/lunar_phase.rb
|
194
213
|
- lib/zakuro/version/genka/option/dropped_date/parameter.rb
|
214
|
+
- lib/zakuro/version/genka/option/vanished_date/parameter.rb
|
195
215
|
- lib/zakuro/version/genka/range/annual_range.rb
|
196
216
|
- lib/zakuro/version/genka/stella/origin/first_term.rb
|
197
217
|
- lib/zakuro/version/genka/stella/origin/january.rb
|
@@ -203,6 +223,7 @@ files:
|
|
203
223
|
- lib/zakuro/version/gihou/gihou.rb
|
204
224
|
- lib/zakuro/version/gihou/monthly/lunar_phase.rb
|
205
225
|
- lib/zakuro/version/gihou/option/dropped_date/parameter.rb
|
226
|
+
- lib/zakuro/version/gihou/option/vanished_date/parameter.rb
|
206
227
|
- lib/zakuro/version/gihou/range/annual_range.rb
|
207
228
|
- lib/zakuro/version/gihou/stella/lunar/adjustment.rb
|
208
229
|
- lib/zakuro/version/gihou/stella/lunar/localization.rb
|
@@ -220,13 +241,13 @@ files:
|
|
220
241
|
- lib/zakuro/version/houryaku/houryaku.rb
|
221
242
|
- lib/zakuro/version/joukyou/joukyou.rb
|
222
243
|
- lib/zakuro/version/kansei/kansei.rb
|
223
|
-
- lib/zakuro/version/senmyou/README.md
|
224
244
|
- lib/zakuro/version/senmyou/const/number.rb
|
225
245
|
- lib/zakuro/version/senmyou/const/remainder.rb
|
226
246
|
- lib/zakuro/version/senmyou/cycle/remainder.rb
|
227
247
|
- lib/zakuro/version/senmyou/cycle/solar_term.rb
|
228
248
|
- lib/zakuro/version/senmyou/monthly/lunar_phase.rb
|
229
249
|
- lib/zakuro/version/senmyou/option/dropped_date/parameter.rb
|
250
|
+
- lib/zakuro/version/senmyou/option/vanished_date/parameter.rb
|
230
251
|
- lib/zakuro/version/senmyou/range/annual_range.rb
|
231
252
|
- lib/zakuro/version/senmyou/senmyou.rb
|
232
253
|
- lib/zakuro/version/senmyou/stella/lunar/adjustment.rb
|