Class: Zakuro::Version::Genka::Monthly::LunarPhase

Inherits:
Object
  • Object
show all
Defined in:
lib/zakuro/version/genka/monthly/lunar_phase.rb

Overview

LunarPhase 月の位相

Constant Summary collapse

QUARTER =

Returns 弦.

Returns:

Const::Remainder::QUARTER
PHASE_INDEXES =

Returns 月内の弦.

Returns:

  • (Array<String>)

    月内の弦

Calculation::Monthly::Const::PHASE_INDEXES

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(remainder:) ⇒ LunarPhase

初期化

Parameters:



41
42
43
44
45
46
47
# File 'lib/zakuro/version/genka/monthly/lunar_phase.rb', line 41

def initialize(remainder:)
  # 経
  @remainder = remainder

  # 弦の位置
  @index = 0
end

Instance Attribute Details

#indexInteger (readonly)

Returns 弦の位置.

Returns:

  • (Integer)

    弦の位置



32
33
34
# File 'lib/zakuro/version/genka/monthly/lunar_phase.rb', line 32

def index
  @index
end

#remainderCycle::AbstractRemainder (readonly)

Returns 経.

Returns:

  • (Cycle::AbstractRemainder)



34
35
36
# File 'lib/zakuro/version/genka/monthly/lunar_phase.rb', line 34

def remainder
  @remainder
end

Instance Method Details

#average_remainderRemainder

経朔を返す

元嘉暦には経朔しかないが他の暦と揃える

Returns:

  • (Remainder)

    経朔



85
86
87
# File 'lib/zakuro/version/genka/monthly/lunar_phase.rb', line 85

def average_remainder
  @remainder
end

#next_monthRemainder

Note:

進めた後の月の経朔ではなく、当月のものを返却する

次の月に進める

Returns:

  • (Remainder)

    当月初の経朔



68
69
70
71
72
73
74
75
76
# File 'lib/zakuro/version/genka/monthly/lunar_phase.rb', line 68

def next_month
  result = nil
  PHASE_INDEXES.each_with_index do |_phase, index|
    adjust = next_phase
    result = adjust if index.zero?
  end

  result
end

#next_phaseRemainder

次の弦に進める

Returns:

  • (Remainder)

    経朔



54
55
56
57
58
59
60
# File 'lib/zakuro/version/genka/monthly/lunar_phase.rb', line 54

def next_phase
  adjusted = remainder.clone

  add_quarter_moon_size

  adjusted
end