zakuro 0.9.0 → 0.9.2
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 +50 -178
- data/VERSION +1 -1
- data/doc/condition.md +38 -0
- data/doc/dropped_date.md +41 -0
- data/doc/expection.md +119 -0
- data/doc/operation/csv/month.csv +4 -4
- data/doc/operation/operation.xlsx +0 -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/era/gengou/abstract_scroll.rb +2 -2
- data/lib/zakuro/calculation/era/gengou/internal/reserve/abstract_range.rb +5 -5
- data/lib/zakuro/calculation/era/gengou/internal/reserve/named_range.rb +1 -1
- data/lib/zakuro/calculation/monthly/first_day.rb +9 -1
- data/lib/zakuro/calculation/monthly/operated_month.rb +18 -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 +71 -9
- data/lib/zakuro/context/option.rb +17 -0
- data/lib/zakuro/context/version_class_resolver.rb +17 -1
- data/lib/zakuro/era/japan/calendar.rb +2 -2
- data/lib/zakuro/era/japan/gengou/resource/validator.rb +2 -2
- data/lib/zakuro/era/western/calendar.rb +5 -11
- data/lib/zakuro/era/western/date_text.rb +40 -0
- data/lib/zakuro/gateway/locale/date.rb +2 -2
- data/lib/zakuro/operation/month/validator.rb +7 -1
- data/lib/zakuro/operation/yaml/month.yaml +14 -14
- 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 +25 -3
@@ -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 Daien
|
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
|
@@ -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
|
#
|
@@ -43,7 +43,9 @@ module Zakuro
|
|
43
43
|
return '' if invalid?
|
44
44
|
|
45
45
|
decimal = day + minute / base_day.to_f
|
46
|
-
|
46
|
+
|
47
|
+
# NOTE: 親クラスを迂回する
|
48
|
+
Kernel.instance_method(:format).bind(self).call(form, decimal.round(digit))
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
@@ -84,7 +86,9 @@ module Zakuro
|
|
84
86
|
# 具体的には、468年の中気は '55.7813' だが '55.7812' になる
|
85
87
|
# これは '55.7812500' を4桁にした際に、境界値の少数点以下5桁目の '5' が切り捨てを受けたためである
|
86
88
|
# format による四捨五入は避け、roundによる四捨五入を採用する
|
87
|
-
|
89
|
+
|
90
|
+
# NOTE: 親クラスを迂回する
|
91
|
+
Kernel.instance_method(:format).bind(self).call(form, decimal.round(digit))
|
88
92
|
end
|
89
93
|
end
|
90
94
|
end
|
@@ -47,7 +47,7 @@ module Zakuro
|
|
47
47
|
#
|
48
48
|
# 次の弦に進める
|
49
49
|
#
|
50
|
-
# @return [Remainder]
|
50
|
+
# @return [Remainder] 経朔
|
51
51
|
#
|
52
52
|
def next_phase
|
53
53
|
adjusted = remainder.clone
|
@@ -59,9 +59,9 @@ module Zakuro
|
|
59
59
|
|
60
60
|
#
|
61
61
|
# 次の月に進める
|
62
|
-
# @note
|
62
|
+
# @note 進めた後の月の経朔ではなく、当月のものを返却する
|
63
63
|
#
|
64
|
-
# @return [Remainder]
|
64
|
+
# @return [Remainder] 当月初の経朔
|
65
65
|
#
|
66
66
|
def next_month
|
67
67
|
result = nil
|
@@ -73,6 +73,17 @@ module Zakuro
|
|
73
73
|
result
|
74
74
|
end
|
75
75
|
|
76
|
+
#
|
77
|
+
# 経朔を返す
|
78
|
+
#
|
79
|
+
# 元嘉暦には経朔しかないが他の暦と揃える
|
80
|
+
#
|
81
|
+
# @return [Remainder] 経朔
|
82
|
+
#
|
83
|
+
def average_remainder
|
84
|
+
@remainder
|
85
|
+
end
|
86
|
+
|
76
87
|
private
|
77
88
|
|
78
89
|
#
|
@@ -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 Genka
|
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
|
@@ -42,11 +42,7 @@ module Zakuro
|
|
42
42
|
# * 0.75 * 12(1分=12秒) = 9
|
43
43
|
#
|
44
44
|
# @return [Cycle::LunarRemainder] 弦(1分=12秒)
|
45
|
-
|
46
|
-
# QUARTER = Cycle::LunarRemainder.new(day: 7, minute: 512, second: 9)
|
47
|
-
# QUARTER = Cycle::LunarRemainder.new(day: 7, minute: 512, second: 9.00378)
|
48
|
-
# QUARTER = Cycle::LunarRemainder.new(day: 7, minute: 512, second: 9.0208)
|
49
|
-
QUARTER = Cycle::LunarRemainder.new(day: 7, minute: 512, second: 9.00378)
|
45
|
+
QUARTER = Cycle::LunarRemainder.new(day: 7, minute: 512, second: 9)
|
50
46
|
end
|
51
47
|
end
|
52
48
|
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
|
end
|
81
55
|
end
|
@@ -64,7 +64,7 @@ module Zakuro
|
|
64
64
|
# NOTE: 儀鳳暦では進朔しない
|
65
65
|
# adjusted.up_on_new_moon!
|
66
66
|
|
67
|
-
debug("result: #{adjusted.format}")
|
67
|
+
debug("result: #{adjusted.format(form: '%d-%d.%.5f')}")
|
68
68
|
|
69
69
|
adjusted
|
70
70
|
end
|
@@ -94,9 +94,7 @@ module Zakuro
|
|
94
94
|
|
95
95
|
remainder = lunar_location.adjusted_remainder
|
96
96
|
|
97
|
-
|
98
|
-
# debug("[lunar]remainder.day: #{remainder.day}")
|
99
|
-
# debug("[lunar]remainder.minute: #{remainder.minute}")
|
97
|
+
debug("[lunar]remainder.format: #{remainder.format(form: '%d-%d-%.5f')}")
|
100
98
|
|
101
99
|
Lunar::Value.get(remainder: remainder)
|
102
100
|
end
|
@@ -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.2
|
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-12-29 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
|
@@ -127,6 +143,7 @@ files:
|
|
127
143
|
- lib/zakuro/era/japan/gengou/resource/yaml/set-003-modern.yaml
|
128
144
|
- lib/zakuro/era/japan/version.rb
|
129
145
|
- lib/zakuro/era/western/calendar.rb
|
146
|
+
- lib/zakuro/era/western/date_text.rb
|
130
147
|
- lib/zakuro/exception/case/pattern.rb
|
131
148
|
- lib/zakuro/exception/case/preset.rb
|
132
149
|
- lib/zakuro/exception/case/template.rb
|
@@ -154,6 +171,8 @@ files:
|
|
154
171
|
- lib/zakuro/result/data/option/dropped_date/calculation.rb
|
155
172
|
- lib/zakuro/result/data/option/dropped_date/option.rb
|
156
173
|
- lib/zakuro/result/data/option/dropped_date/solar_term.rb
|
174
|
+
- lib/zakuro/result/data/option/vanished_date/calculation.rb
|
175
|
+
- lib/zakuro/result/data/option/vanished_date/option.rb
|
157
176
|
- lib/zakuro/result/data/single_day.rb
|
158
177
|
- lib/zakuro/result/data/solar_term.rb
|
159
178
|
- lib/zakuro/result/data/year.rb
|
@@ -172,6 +191,7 @@ files:
|
|
172
191
|
- lib/zakuro/version/daien/daien.rb
|
173
192
|
- lib/zakuro/version/daien/monthly/lunar_phase.rb
|
174
193
|
- lib/zakuro/version/daien/option/dropped_date/parameter.rb
|
194
|
+
- lib/zakuro/version/daien/option/vanished_date/parameter.rb
|
175
195
|
- lib/zakuro/version/daien/range/annual_range.rb
|
176
196
|
- lib/zakuro/version/daien/stella/lunar/adjustment.rb
|
177
197
|
- lib/zakuro/version/daien/stella/lunar/localization.rb
|
@@ -192,6 +212,7 @@ files:
|
|
192
212
|
- lib/zakuro/version/genka/genka.rb
|
193
213
|
- lib/zakuro/version/genka/monthly/lunar_phase.rb
|
194
214
|
- lib/zakuro/version/genka/option/dropped_date/parameter.rb
|
215
|
+
- lib/zakuro/version/genka/option/vanished_date/parameter.rb
|
195
216
|
- lib/zakuro/version/genka/range/annual_range.rb
|
196
217
|
- lib/zakuro/version/genka/stella/origin/first_term.rb
|
197
218
|
- lib/zakuro/version/genka/stella/origin/january.rb
|
@@ -203,6 +224,7 @@ files:
|
|
203
224
|
- lib/zakuro/version/gihou/gihou.rb
|
204
225
|
- lib/zakuro/version/gihou/monthly/lunar_phase.rb
|
205
226
|
- lib/zakuro/version/gihou/option/dropped_date/parameter.rb
|
227
|
+
- lib/zakuro/version/gihou/option/vanished_date/parameter.rb
|
206
228
|
- lib/zakuro/version/gihou/range/annual_range.rb
|
207
229
|
- lib/zakuro/version/gihou/stella/lunar/adjustment.rb
|
208
230
|
- lib/zakuro/version/gihou/stella/lunar/localization.rb
|
@@ -220,13 +242,13 @@ files:
|
|
220
242
|
- lib/zakuro/version/houryaku/houryaku.rb
|
221
243
|
- lib/zakuro/version/joukyou/joukyou.rb
|
222
244
|
- lib/zakuro/version/kansei/kansei.rb
|
223
|
-
- lib/zakuro/version/senmyou/README.md
|
224
245
|
- lib/zakuro/version/senmyou/const/number.rb
|
225
246
|
- lib/zakuro/version/senmyou/const/remainder.rb
|
226
247
|
- lib/zakuro/version/senmyou/cycle/remainder.rb
|
227
248
|
- lib/zakuro/version/senmyou/cycle/solar_term.rb
|
228
249
|
- lib/zakuro/version/senmyou/monthly/lunar_phase.rb
|
229
250
|
- lib/zakuro/version/senmyou/option/dropped_date/parameter.rb
|
251
|
+
- lib/zakuro/version/senmyou/option/vanished_date/parameter.rb
|
230
252
|
- lib/zakuro/version/senmyou/range/annual_range.rb
|
231
253
|
- lib/zakuro/version/senmyou/senmyou.rb
|
232
254
|
- lib/zakuro/version/senmyou/stella/lunar/adjustment.rb
|