lib/zakuro/version/senmyou/stella/solar/average.rb in zakuro-0.9.4 vs lib/zakuro/version/senmyou/stella/solar/average.rb in zakuro-1.0.0
- old
+ new
@@ -11,87 +11,90 @@
require_relative './location'
# :nodoc:
module Zakuro
# :nodoc:
- module Senmyou
+ module Version
# :nodoc:
- module Solar
- #
- # Average 平気(太陽軌道平均)
- #
- class Average < Calculation::Solar::AbstractAverage
+ module Senmyou
+ # :nodoc:
+ module Solar
#
- # 初期化
+ # Average 平気(太陽軌道平均)
#
- # @param [Integer] western_year 西暦年
- #
- def initialize(western_year:)
- solar_term = self.class.first_solar_term(western_year: western_year)
- super(solar_term: solar_term)
- end
-
- #
- # 冬至から数えた1年データの月ごとに二十四節気を割り当てる
- #
- # @param [Array<Month>] annual_range 1年データ
- #
- # @return [Array<Month>] 1年データ
- #
- def set(annual_range:)
- super(annual_range: annual_range)
- end
-
- class << self
+ class Average < Calculation::Solar::AbstractAverage
#
- # 計算開始する二十四節気を求める
+ # 初期化
#
# @param [Integer] western_year 西暦年
#
- # @return [SolarTerm] 二十四節気
+ def initialize(western_year:)
+ solar_term = self.class.first_solar_term(western_year: western_year)
+ super(solar_term: solar_term)
+ end
+
#
- def first_solar_term(western_year:)
- # 天正冬至
- winter_solstice = Origin::WinterSolstice.get(western_year: western_year)
+ # 冬至から数えた1年データの月ごとに二十四節気を割り当てる
+ #
+ # @param [Array<Month>] annual_range 1年データ
+ #
+ # @return [Array<Month>] 1年データ
+ #
+ def set(annual_range:)
+ super(annual_range: annual_range)
+ end
- # 二十四節気(冬至)
- solar_term = Cycle::SolarTerm.new(index: 0, remainder: winter_solstice)
+ class << self
+ #
+ # 計算開始する二十四節気を求める
+ #
+ # @param [Integer] western_year 西暦年
+ #
+ # @return [SolarTerm] 二十四節気
+ #
+ def first_solar_term(western_year:)
+ # 天正冬至
+ winter_solstice = Origin::WinterSolstice.get(western_year: western_year)
- first_solar_term_index = calc_first_solar_term_index(western_year: western_year)
+ # 二十四節気(冬至)
+ solar_term = Cycle::SolarTerm.new(index: 0, remainder: winter_solstice)
- # 対象の二十四節気まで戻す
- solar_term.prev_by_index(first_solar_term_index)
+ first_solar_term_index = calc_first_solar_term_index(western_year: western_year)
- solar_term
- end
+ # 対象の二十四節気まで戻す
+ solar_term.prev_by_index(first_solar_term_index)
- # :reek:TooManyStatements { max_statements: 6 }
+ solar_term
+ end
- #
- # 計算開始する二十四節気番号を求める
- #
- # * 前提として入定気は冬至の手前にある
- # * 例えば、定気が大雪であれば入定気は大雪の範囲内にある
- # * 入定気は、定気の開始位置に重複しない限り、常に定気より後にある
- # * 基本的に定気の一つ前から起算すれば、当時から求めた11月(閏10/閏11月)に二十四節気を割り当てられる
- #
- # @param [Integer] western_year 西暦年
- #
- # @return [Integer] 二十四節気番号
- #
- def calc_first_solar_term_index(western_year:)
- # 天正閏余
- lunar_age = Origin::LunarAge.get(western_year: western_year)
+ # :reek:TooManyStatements { max_statements: 6 }
- solar_location = Solar::Location.new(lunar_age: lunar_age)
- solar_location.run
+ #
+ # 計算開始する二十四節気番号を求める
+ #
+ # * 前提として入定気は冬至の手前にある
+ # * 例えば、定気が大雪であれば入定気は大雪の範囲内にある
+ # * 入定気は、定気の開始位置に重複しない限り、常に定気より後にある
+ # * 基本的に定気の一つ前から起算すれば、当時から求めた11月(閏10/閏11月)に二十四節気を割り当てられる
+ #
+ # @param [Integer] western_year 西暦年
+ #
+ # @return [Integer] 二十四節気番号
+ #
+ def calc_first_solar_term_index(western_year:)
+ # 天正閏余
+ lunar_age = Origin::LunarAge.get(western_year: western_year)
- solar_term_index = solar_location.index
+ solar_location = Solar::Location.new(lunar_age: lunar_age)
+ solar_location.run
- # 入定気の一つ後の二十四節気まで戻す(ただし11月経朔が二十四節気上にある場合は戻さない)
- solar_term_index += 1 unless solar_location.remainder.day.zero?
+ solar_term_index = solar_location.index
- solar_term_index
+ # 入定気の一つ後の二十四節気まで戻す(ただし11月経朔が二十四節気上にある場合は戻さない)
+ solar_term_index += 1 unless solar_location.remainder.day.zero?
+
+ solar_term_index
+ end
end
end
end
end
end