Module: Zakuro::Version::Genka::Range::AnnualRange

Defined in:
lib/zakuro/version/genka/range/annual_range.rb

Overview

AnnualRange 年間範囲

Constant Summary collapse

LOGGER =

Returns ロガー.

Returns:

Output::Logger.new(location: 'annual_range')

Class Method Summary collapse

Class Method Details

.get(context:, western_year:) ⇒ Array<Month>

一覧取得する

* 

Parameters:

  • context (Context::Context)

    暦コンテキスト

  • western_year (Integer)

    西暦年

Returns:

  • (Array<Month>)

    1年データ



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/zakuro/version/genka/range/annual_range.rb', line 35

def get(context:, western_year:)
  # 正月中気
  solar_term = Cycle::SolarTerm.new(
    index: 4, remainder: Origin::FirstTerm.get(western_year: western_year)
  )
  # 正月に立春が含まれる可能性があるので、立春まで戻しておく
  solar_term.prev_term!

  # 経
  remainder = Origin::January.get(western_year: western_year)

  lunar_phase = Monthly::LunarPhase.new(remainder: remainder)

  solar_average = Solar::Average.new(solar_term: solar_term)

  annual_range = Calculation::Range::MedievalAnnualRange.get(
    context: context, lunar_phase: lunar_phase, solar_average: solar_average
  )

  pop_months_on_next_year(annual_range: annual_range)
end