zakuro 0.1.2 → 0.1.3

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/lib/zakuro/calculation/base/multi_gengou.rb +101 -0
  3. data/lib/zakuro/calculation/base/multi_gengou_roller.rb +218 -0
  4. data/lib/zakuro/calculation/base/year.rb +107 -0
  5. data/lib/zakuro/calculation/cycle/abstract_remainder.rb +459 -0
  6. data/lib/zakuro/calculation/cycle/abstract_solar_term.rb +151 -0
  7. data/lib/zakuro/calculation/cycle/zodiac.rb +106 -0
  8. data/lib/zakuro/calculation/monthly/first_day.rb +45 -0
  9. data/lib/zakuro/calculation/monthly/initialized_month.rb +120 -0
  10. data/lib/zakuro/calculation/monthly/month.rb +184 -0
  11. data/lib/zakuro/calculation/monthly/month_label.rb +88 -0
  12. data/lib/zakuro/calculation/monthly/operated_month.rb +201 -0
  13. data/lib/zakuro/calculation/range/full_range.rb +210 -0
  14. data/lib/zakuro/calculation/range/operated_range.rb +134 -0
  15. data/lib/zakuro/calculation/range/operated_solar_terms.rb +201 -0
  16. data/lib/zakuro/calculation/range/transfer/western_date_allocation.rb +76 -0
  17. data/lib/zakuro/calculation/range/transfer/year_boundary.rb +142 -0
  18. data/lib/zakuro/calculation/specifier/single_day.rb +109 -0
  19. data/lib/zakuro/calculation/summary/single.rb +129 -0
  20. data/lib/zakuro/merchant.rb +2 -2
  21. data/lib/zakuro/output/error.rb +7 -6
  22. data/lib/zakuro/output/logger.rb +50 -49
  23. data/lib/zakuro/output/response.rb +145 -144
  24. data/lib/zakuro/tools/typeof.rb +2 -2
  25. data/lib/zakuro/version.rb +1 -1
  26. data/lib/zakuro/version/abstract_version.rb +1 -1
  27. data/lib/zakuro/version/context.rb +23 -0
  28. data/lib/zakuro/version/senmyou/cycle/remainder.rb +63 -0
  29. data/lib/zakuro/version/senmyou/cycle/solar_term.rb +31 -0
  30. data/lib/zakuro/version/senmyou/monthly/lunar_phase.rb +186 -182
  31. data/lib/zakuro/version/senmyou/range/annual_range.rb +134 -129
  32. data/lib/zakuro/version/senmyou/senmyou.rb +10 -4
  33. data/lib/zakuro/version/senmyou/stella/lunar_orbit.rb +5 -5
  34. data/lib/zakuro/version/senmyou/stella/solar_average.rb +4 -4
  35. data/lib/zakuro/version/senmyou/stella/solar_location.rb +27 -27
  36. data/lib/zakuro/version/senmyou/stella/solar_orbit.rb +2 -2
  37. data/lib/zakuro/version/senmyou/stella/winter_solstice.rb +4 -4
  38. data/lib/zakuro/version/version_class_resolver.rb +62 -0
  39. data/lib/zakuro/version_factory.rb +2 -2
  40. metadata +24 -22
  41. data/lib/zakuro/cycle/abstract_remainder.rb +0 -456
  42. data/lib/zakuro/cycle/zodiac.rb +0 -103
  43. data/lib/zakuro/version/senmyou/base/era.rb +0 -83
  44. data/lib/zakuro/version/senmyou/base/multi_gengou.rb +0 -98
  45. data/lib/zakuro/version/senmyou/base/multi_gengou_roller.rb +0 -217
  46. data/lib/zakuro/version/senmyou/base/remainder.rb +0 -60
  47. data/lib/zakuro/version/senmyou/base/solar_term.rb +0 -148
  48. data/lib/zakuro/version/senmyou/base/year.rb +0 -104
  49. data/lib/zakuro/version/senmyou/monthly/first_day.rb +0 -44
  50. data/lib/zakuro/version/senmyou/monthly/initialized_month.rb +0 -119
  51. data/lib/zakuro/version/senmyou/monthly/month.rb +0 -181
  52. data/lib/zakuro/version/senmyou/monthly/month_label.rb +0 -87
  53. data/lib/zakuro/version/senmyou/monthly/operated_month.rb +0 -196
  54. data/lib/zakuro/version/senmyou/range/full_range.rb +0 -194
  55. data/lib/zakuro/version/senmyou/range/operated_range.rb +0 -126
  56. data/lib/zakuro/version/senmyou/range/operated_solar_terms.rb +0 -181
  57. data/lib/zakuro/version/senmyou/range/western_date_allocation.rb +0 -68
  58. data/lib/zakuro/version/senmyou/range/year_boundary.rb +0 -138
  59. data/lib/zakuro/version/senmyou/specifier/single_day_specifier.rb +0 -102
  60. data/lib/zakuro/version/senmyou/summary/single.rb +0 -125
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../../../output/logger'
4
- require_relative '../base/remainder'
5
- require_relative '../monthly/initialized_month'
6
- require_relative '../base/solar_term'
4
+ require_relative '../cycle/remainder'
5
+ require_relative '../cycle/solar_term'
6
+ require_relative '../../../calculation/monthly/initialized_month'
7
7
  require_relative '../monthly/lunar_phase'
8
8
  require_relative '../stella/solar_orbit'
9
9
  require_relative '../stella/solar_average'
@@ -14,146 +14,151 @@ require_relative '../stella/lunar_orbit'
14
14
  module Zakuro
15
15
  # :nodoc:
16
16
  module Senmyou
17
- #
18
- # AnnualRange 年間範囲
19
- #
20
- module AnnualRange
21
- # @return [Logger] ロガー
22
- LOGGER = Logger.new(location: 'annual_range')
23
-
24
- # :reek:TooManyStatements { max_statements: 6 }
17
+ # :nodoc:
18
+ module Range
19
+ #
20
+ # AnnualRange 年間範囲
21
+ #
22
+ module AnnualRange
23
+ # @return [Output::Logger] ロガー
24
+ LOGGER = Output::Logger.new(location: 'annual_range')
25
+
26
+ # :reek:TooManyStatements { max_statements: 6 }
27
+
28
+ #
29
+ # 11月定朔(冬至が含まれる月の1日:補正済)を求める
30
+ #
31
+ # @param [Integer] western_year 西暦年
32
+ #
33
+ # @return [Remainder] 11月定朔
34
+ #
35
+ def self.calc_last_november_1st(western_year:)
36
+ # 天正閏余
37
+ winter_solstice_age = \
38
+ WinterSolstice.calc_moon_age(western_year: western_year)
39
+ # 11月経朔
40
+ november_1st = \
41
+ WinterSolstice.calc_averaged_last_november_1st(western_year: western_year)
42
+ # 11月定朔
43
+
44
+ # 補正
45
+ correction_value = correction_value_on_last_november_1st(
46
+ winter_solstice_age: winter_solstice_age,
47
+ western_year: western_year
48
+ )
25
49
 
26
- #
27
- # 11月定朔(冬至が含まれる月の1日:補正済)を求める
28
- #
29
- # @param [Integer] western_year 西暦年
30
- #
31
- # @return [Remainder] 11月定朔
32
- #
33
- def self.calc_last_november_1st(western_year:)
34
- # 天正閏余
35
- winter_solstice_age = \
36
- WinterSolstice.calc_moon_age(western_year: western_year)
37
- # 11月経朔
38
- november_1st = \
39
- WinterSolstice.calc_averaged_last_november_1st(western_year: western_year)
40
- # 11月定朔
41
-
42
- # 補正
43
- correction_value = correction_value_on_last_november_1st(
44
- winter_solstice_age: winter_solstice_age,
45
- western_year: western_year
46
- )
47
-
48
- result = november_1st.add(Remainder.new(day: 0, minute: correction_value,
49
- second: 0))
50
- # 進朔
51
- result.up_on_new_moon!
52
- result
53
- end
50
+ result = november_1st.add(Cycle::Remainder.new(day: 0, minute: correction_value,
51
+ second: 0))
52
+ # 進朔
53
+ result.up_on_new_moon!
54
+ result
55
+ end
54
56
 
55
- # :reek:TooManyStatements { max_statements: 6 }
57
+ # :reek:TooManyStatements { max_statements: 6 }
56
58
 
57
- #
58
- # 一覧取得する
59
- #
60
- # * 対象年に対して、前年11月-当年11月までを出力する
61
- # * 対象年(西暦)と計算年(元号x年)の紐付けは行わない
62
- #
63
- # @param [Integer] western_year 西暦年
64
- #
65
- # @return [Array<Month>] 1年データ
66
- #
67
- def self.collect_annual_range_after_last_november_1st(western_year:)
68
- annual_range = initialized_annual_range(western_year: western_year)
59
+ #
60
+ # 一覧取得する
61
+ #
62
+ # * 対象年に対して、前年11月-当年11月までを出力する
63
+ # * 対象年(西暦)と計算年(元号x年)の紐付けは行わない
64
+ #
65
+ # @param [Integer] western_year 西暦年
66
+ #
67
+ # @return [Array<Month>] 1年データ
68
+ #
69
+ def self.collect_annual_range_after_last_november_1st(western_year:)
70
+ annual_range = initialized_annual_range(western_year: western_year)
69
71
 
70
- apply_big_and_small_of_the_month(annual_range: annual_range)
72
+ apply_big_and_small_of_the_month(annual_range: annual_range)
71
73
 
72
- solar_average = SolarAverage.new(western_year: western_year)
73
- solar_average.set(annual_range: annual_range)
74
+ solar_average = SolarAverage.new(western_year: western_year)
75
+ solar_average.set(annual_range: annual_range)
74
76
 
75
- # 月間隔を取得するためだけの末尾要素を削除
76
- annual_range.pop
77
+ # 月間隔を取得するためだけの末尾要素を削除
78
+ annual_range.pop
77
79
 
78
- initialize_month_label(annual_range: annual_range)
79
- end
80
+ initialize_month_label(annual_range: annual_range)
81
+ end
80
82
 
81
- #
82
- # 11月定朔の補正値を求める
83
- #
84
- # @param [Remainder] winter_solstice_age 天正閏余
85
- # @param [Integer] western_year 西暦年
86
- #
87
- # @return [Integer] 補正値
88
- #
89
- def self.correction_value_on_last_november_1st(winter_solstice_age:, western_year:)
90
- # 補正
91
- solar_term = SolarTerm.new(
92
- remainder: winter_solstice_age
93
- )
94
- solar_term = \
95
- SolarLocation.get(
96
- solar_term: solar_term
83
+ #
84
+ # 11月定朔の補正値を求める
85
+ #
86
+ # @param [Remainder] winter_solstice_age 天正閏余
87
+ # @param [Integer] western_year 西暦年
88
+ #
89
+ # @return [Integer] 補正値
90
+ #
91
+ def self.correction_value_on_last_november_1st(winter_solstice_age:, western_year:)
92
+ # 補正
93
+ solar_term = Cycle::SolarTerm.new(
94
+ remainder: winter_solstice_age
97
95
  )
96
+ solar_term = \
97
+ SolarLocation.get(
98
+ solar_term: solar_term
99
+ )
98
100
 
99
- moon_remainder, is_forward = LunarOrbit.calc_moon_point(
100
- remainder: winter_solstice_age, western_year: western_year
101
- )
102
-
103
- SolarOrbit.calc_sun_orbit_value(solar_term: solar_term) +
104
- LunarOrbit.calc_moon_orbit_value(remainder_month: moon_remainder,
105
- is_forward: is_forward)
106
- end
107
- private_class_method :correction_value_on_last_november_1st
108
-
109
- #
110
- # 1年データを取得する
111
- #
112
- # @param [Integer] western_year 西暦年
113
- #
114
- # @return [Array<Month>] 1年データ
115
- #
116
- def self.initialized_annual_range(western_year:)
117
- result = []
118
- lunar_phase = LunarPhase.new(western_year: western_year)
119
-
120
- # 14ヶ月分を生成する(閏年で最大13ヶ月 + 末月の大小/二十四節気を求めるために必要な月)
121
- (0..13).each do |_index|
122
- adjusted = lunar_phase.next_month
123
-
124
- result.push(
125
- InitializedMonth.new(month_label: MonthLabel.new,
126
- first_day: FirstDay.new(remainder: adjusted),
127
- phase_index: 0)
101
+ moon_remainder, is_forward = LunarOrbit.calc_moon_point(
102
+ remainder: winter_solstice_age, western_year: western_year
128
103
  )
129
- end
130
104
 
131
- result
132
- end
133
- private_class_method :initialized_annual_range
134
-
135
- #
136
- # 1年データの各月に月の大小を設定する
137
- #
138
- # @param [Array<Month>] annual_range 1年データ
139
- #
140
- def self.apply_big_and_small_of_the_month(annual_range:)
141
- # NOTE: 最後の月は処理できない(=計算外の余分な月が最後に必要である)
142
- annual_range.each_cons(2) do |(current_month, next_month)|
143
- current_month.eval_many_days(next_month_day: next_month.remainder.day)
105
+ SolarOrbit.calc_sun_orbit_value(solar_term: solar_term) +
106
+ LunarOrbit.calc_moon_orbit_value(remainder_month: moon_remainder,
107
+ is_forward: is_forward)
144
108
  end
109
+ private_class_method :correction_value_on_last_november_1st
110
+
111
+ #
112
+ # 1年データを取得する
113
+ #
114
+ # @param [Integer] western_year 西暦年
115
+ #
116
+ # @return [Array<Month>] 1年データ
117
+ #
118
+ def self.initialized_annual_range(western_year:)
119
+ result = []
120
+ lunar_phase = Monthly::LunarPhase.new(western_year: western_year)
121
+
122
+ # 14ヶ月分を生成する(閏年で最大13ヶ月 + 末月の大小/二十四節気を求めるために必要な月)
123
+ (0..13).each do |_index|
124
+ adjusted = lunar_phase.next_month
125
+
126
+ result.push(
127
+ Calculation::Monthly::InitializedMonth.new(
128
+ month_label: Calculation::Monthly::MonthLabel.new,
129
+ first_day: Calculation::Monthly::FirstDay.new(remainder: adjusted),
130
+ phase_index: 0
131
+ )
132
+ )
133
+ end
134
+
135
+ result
136
+ end
137
+ private_class_method :initialized_annual_range
138
+
139
+ #
140
+ # 1年データの各月に月の大小を設定する
141
+ #
142
+ # @param [Array<Month>] annual_range 1年データ
143
+ #
144
+ def self.apply_big_and_small_of_the_month(annual_range:)
145
+ # NOTE: 最後の月は処理できない(=計算外の余分な月が最後に必要である)
146
+ annual_range.each_cons(2) do |(current_month, next_month)|
147
+ current_month.eval_many_days(next_month_day: next_month.remainder.day)
148
+ end
149
+ end
150
+ private_class_method :apply_big_and_small_of_the_month
151
+
152
+ #
153
+ # 月表示情報を更新する
154
+ #
155
+ # @param [Array<Month>] annual_range 1年データ
156
+ #
157
+ def self.initialize_month_label(annual_range:)
158
+ annual_range.each(&:rename_month_label_by_solar_term)
159
+ end
160
+ private_class_method :initialize_month_label
145
161
  end
146
- private_class_method :apply_big_and_small_of_the_month
147
-
148
- #
149
- # 月表示情報を更新する
150
- #
151
- # @param [Array<Month>] annual_range 1年データ
152
- #
153
- def self.initialize_month_label(annual_range:)
154
- annual_range.each(&:rename_month_label_by_solar_term)
155
- end
156
- private_class_method :initialize_month_label
157
162
  end
158
163
  end
159
164
  end
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'date'
4
- require_relative '../abstract_version'
5
4
  require_relative '../../era/western'
6
- require_relative 'summary/single'
5
+ require_relative '../abstract_version'
6
+ require_relative '../context'
7
+ require_relative '../../calculation/summary/single'
7
8
 
8
9
  # :nodoc:
9
10
  module Zakuro
@@ -18,16 +19,21 @@ module Zakuro
18
19
  # @return [True] リリースあり
19
20
  RELEASE = true
20
21
 
22
+ # @return [String] 暦クラス名
23
+ VERSION_NAME = 'Senmyou'
24
+
21
25
  #
22
26
  # 西暦日から和暦日に変換する
23
27
  #
24
28
  # @param [Date] western_date 西暦日
25
29
  #
26
- # @return [Result::SingleDay] 和暦日
30
+ # @return [Result::Single] 和暦日
27
31
  #
28
32
  def self.to_japan_date(western_date:)
29
33
  date = Western::Calendar.create(date: western_date)
30
- Single.get(date: date)
34
+
35
+ context = Context.new(version_name: VERSION_NAME)
36
+ Calculation::Summary::Single.get(context: context, date: date)
31
37
  end
32
38
  end
33
39
  end
@@ -13,7 +13,7 @@ module Zakuro
13
13
  # @return [Integer] 暦中日
14
14
  # @note ANOMALISTIC_MONTH の半分に相当する
15
15
  HALF_ANOMALISTIC_MONTH = \
16
- LunarRemainder.new(day: 13, minute: 6529, second: 9.5)
16
+ Cycle::LunarRemainder.new(day: 13, minute: 6529, second: 9.5)
17
17
 
18
18
  #
19
19
  # Adjustment 補正値情報
@@ -122,7 +122,7 @@ module Zakuro
122
122
  # @return [True] 正しくない
123
123
  #
124
124
  def self.valid?(remainder:)
125
- return if remainder.is_a?(LunarRemainder)
125
+ return if remainder.is_a?(Cycle::LunarRemainder)
126
126
 
127
127
  raise ArgumentError, "unmatch parameter type: #{remainder.class}"
128
128
  end
@@ -272,14 +272,14 @@ module Zakuro
272
272
  total_year * WinterSolstice::YEAR - winter_solstice_age.to_minute
273
273
 
274
274
  remainder_month = \
275
- LunarRemainder.new(total: (total_day % ANOMALISTIC_MONTH))
275
+ Cycle::LunarRemainder.new(total: (total_day % ANOMALISTIC_MONTH))
276
276
 
277
277
  remainder_month, is_forward = decrease_moon_point(
278
278
  remainder_month: remainder_month,
279
279
  remainder_limit: HALF_ANOMALISTIC_MONTH, is_forward: true
280
280
  )
281
281
 
282
- remainder_month.add!(Remainder.new(day: 1, minute: 0, second: 0))
282
+ remainder_month.add!(Cycle::Remainder.new(day: 1, minute: 0, second: 0))
283
283
 
284
284
  [remainder_month, is_forward]
285
285
  end
@@ -302,7 +302,7 @@ module Zakuro
302
302
  remainder_month, is_forward = \
303
303
  decrease_moon_point(
304
304
  remainder_month: remainder,
305
- remainder_limit: Remainder.new(day: 14, minute: 6529, second: 0),
305
+ remainder_limit: Cycle::Remainder.new(day: 14, minute: 6529, second: 0),
306
306
  is_forward: is_forward
307
307
  )
308
308
 
@@ -9,7 +9,7 @@ module Zakuro
9
9
  #
10
10
  class SolarAverage
11
11
  # @return [Remainder] 気策(24分の1年)
12
- SOLAR_TERM_AVERAGE = Remainder.new(day: 15, minute: 1835, second: 5)
12
+ SOLAR_TERM_AVERAGE = Cycle::Remainder.new(day: 15, minute: 1835, second: 5)
13
13
 
14
14
  #
15
15
  # 初期化
@@ -52,7 +52,7 @@ module Zakuro
52
52
  winter_solstice = WinterSolstice.calc(western_year: western_year)
53
53
 
54
54
  # 二十四節気(冬至)
55
- solar_term = SolarTerm.new(index: 0, remainder: winter_solstice)
55
+ solar_term = Cycle::SolarTerm.new(index: 0, remainder: winter_solstice)
56
56
 
57
57
  first_solar_term_index = SolarAverage.calc_fist_solar_term_index(western_year: western_year)
58
58
 
@@ -81,13 +81,13 @@ module Zakuro
81
81
 
82
82
  # 入定気を求める
83
83
  solar_location = SolarLocation.get(
84
- solar_term: SolarTerm.new(remainder: winter_solstice_age)
84
+ solar_term: Cycle::SolarTerm.new(remainder: winter_solstice_age)
85
85
  )
86
86
 
87
87
  solar_term_index = solar_location.index
88
88
 
89
89
  # 入定気の一つ後の二十四節気まで戻す(ただし11月経朔が二十四節気上にある場合は戻さない)
90
- solar_term_index += 1 unless solar_location.remainder == Remainder.new(total: 0)
90
+ solar_term_index += 1 unless solar_location.remainder == Cycle::Remainder.new(total: 0)
91
91
 
92
92
  solar_term_index
93
93
  end
@@ -17,41 +17,41 @@ module Zakuro
17
17
  # @return [Hash<Symbol, Remainder>] 一覧
18
18
  LIST = {
19
19
  # 冬至(とうじ)・大雪(たいせつ)
20
- touji: Remainder.new(day: 14, minute: 4235, second: 5),
21
- taisetsu: Remainder.new(day: 14, minute: 4235, second: 5),
20
+ touji: Cycle::Remainder.new(day: 14, minute: 4235, second: 5),
21
+ taisetsu: Cycle::Remainder.new(day: 14, minute: 4235, second: 5),
22
22
  # 小寒(しょうかん)・小雪(しょうせつ)
23
- shoukan: Remainder.new(day: 14, minute: 5235, second: 5),
24
- shousetsu: Remainder.new(day: 14, minute: 5235, second: 5),
23
+ shoukan: Cycle::Remainder.new(day: 14, minute: 5235, second: 5),
24
+ shousetsu: Cycle::Remainder.new(day: 14, minute: 5235, second: 5),
25
25
  # 大寒(だいかん)・立冬(りっとう)
26
- daikan: Remainder.new(day: 14, minute: 6235, second: 5),
27
- rittou: Remainder.new(day: 14, minute: 6235, second: 5),
26
+ daikan: Cycle::Remainder.new(day: 14, minute: 6235, second: 5),
27
+ rittou: Cycle::Remainder.new(day: 14, minute: 6235, second: 5),
28
28
  # 立春(りっしゅん)・霜降(そうこう)
29
- risshun: Remainder.new(day: 14, minute: 7235, second: 5),
30
- soukou: Remainder.new(day: 14, minute: 7235, second: 5),
29
+ risshun: Cycle::Remainder.new(day: 14, minute: 7235, second: 5),
30
+ soukou: Cycle::Remainder.new(day: 14, minute: 7235, second: 5),
31
31
  # 雨水(うすい)・寒露(かんろ)
32
- usui: Remainder.new(day: 15, minute: 35, second: 5),
33
- kanro: Remainder.new(day: 15, minute: 35, second: 5),
32
+ usui: Cycle::Remainder.new(day: 15, minute: 35, second: 5),
33
+ kanro: Cycle::Remainder.new(day: 15, minute: 35, second: 5),
34
34
  # 啓蟄(けいちつ)・秋分(しゅうぶん)
35
- keichitsu: Remainder.new(day: 15, minute: 1235, second: 5),
36
- shuubun: Remainder.new(day: 15, minute: 1235, second: 5),
35
+ keichitsu: Cycle::Remainder.new(day: 15, minute: 1235, second: 5),
36
+ shuubun: Cycle::Remainder.new(day: 15, minute: 1235, second: 5),
37
37
  # 春分(しゅんぶん)・白露(はくろ)
38
- shunbun: Remainder.new(day: 15, minute: 2435, second: 5),
39
- hakuro: Remainder.new(day: 15, minute: 2435, second: 5),
38
+ shunbun: Cycle::Remainder.new(day: 15, minute: 2435, second: 5),
39
+ hakuro: Cycle::Remainder.new(day: 15, minute: 2435, second: 5),
40
40
  # 清明(せいめい)・処暑(しょしょ)
41
- seimei: Remainder.new(day: 15, minute: 3635, second: 5),
42
- shosho: Remainder.new(day: 15, minute: 3635, second: 5),
41
+ seimei: Cycle::Remainder.new(day: 15, minute: 3635, second: 5),
42
+ shosho: Cycle::Remainder.new(day: 15, minute: 3635, second: 5),
43
43
  # 穀雨(こくう)・立秋(りっしゅう)
44
- kokuu: Remainder.new(day: 15, minute: 4835, second: 5),
45
- risshuu: Remainder.new(day: 15, minute: 4835, second: 5),
44
+ kokuu: Cycle::Remainder.new(day: 15, minute: 4835, second: 5),
45
+ risshuu: Cycle::Remainder.new(day: 15, minute: 4835, second: 5),
46
46
  # 立夏(りっか)・大暑(たいしょ)
47
- rikka: Remainder.new(day: 15, minute: 5835, second: 5),
48
- taisho: Remainder.new(day: 15, minute: 5835, second: 5),
47
+ rikka: Cycle::Remainder.new(day: 15, minute: 5835, second: 5),
48
+ taisho: Cycle::Remainder.new(day: 15, minute: 5835, second: 5),
49
49
  # 小満(しょうまん)・小暑(しょうしょ)
50
- shouman: Remainder.new(day: 15, minute: 6835, second: 5),
51
- shousho: Remainder.new(day: 15, minute: 6835, second: 5),
50
+ shouman: Cycle::Remainder.new(day: 15, minute: 6835, second: 5),
51
+ shousho: Cycle::Remainder.new(day: 15, minute: 6835, second: 5),
52
52
  # 芒種(ぼうしゅ)・夏至(げし)
53
- boushu: Remainder.new(day: 15, minute: 7835, second: 5),
54
- geshi: Remainder.new(day: 15, minute: 7835, second: 5)
53
+ boushu: Cycle::Remainder.new(day: 15, minute: 7835, second: 5),
54
+ geshi: Cycle::Remainder.new(day: 15, minute: 7835, second: 5)
55
55
  }.freeze
56
56
 
57
57
  # @return [Array<Remainder>] 索引
@@ -171,14 +171,14 @@ module Zakuro
171
171
  interval = Interval::INDEXES[index]
172
172
  if winter_solstice_age > interval
173
173
  # 入定気が確定しない(さらに前の定気まで遡れる)
174
- return SolarTerm.new(
174
+ return Cycle::SolarTerm.new(
175
175
  remainder: winter_solstice_age.sub(interval),
176
176
  index: -1
177
177
  )
178
178
  end
179
179
 
180
180
  # 入定気が確定する
181
- SolarTerm.new(
181
+ Cycle::SolarTerm.new(
182
182
  remainder: interval.sub(winter_solstice_age),
183
183
  index: index
184
184
  )
@@ -204,7 +204,7 @@ module Zakuro
204
204
  index += 1
205
205
  index = 0 if index >= Interval::INDEXES.size
206
206
  calc_next_solar_term_recursively(
207
- solar_term: SolarTerm.new(remainder: remainder, index: index)
207
+ solar_term: Cycle::SolarTerm.new(remainder: remainder, index: index)
208
208
  )
209
209
  end
210
210
  private_class_method :calc_next_solar_term_recursively