Class: Zakuro::Calculation::Solar::AbstractLocation

Inherits:
Object
  • Object
show all
Defined in:
lib/zakuro/calculation/stella/solar/abstract_location.rb

Overview

AbstractLocation 入定気

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(lunar_age:, quarter:) ⇒ AbstractLocation

初期化

Parameters:



31
32
33
34
35
36
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 31

def initialize(lunar_age:, quarter:)
  @calculated = false
  @index = -1
  @remainder = lunar_age.clone
  @quarter = quarter
end

Instance Attribute Details

#calculatedTrue, False (readonly)

Returns:

  • (True)

    計算済み(前回計算あり)

  • (False)

    未計算(初回計算)



17
18
19
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 17

def calculated
  @calculated
end

#indexInteger (readonly)

Returns 連番.

Returns:

  • (Integer)

    連番



19
20
21
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 19

def index
  @index
end

#quarterCycle::AbstractRemainder (readonly)

Returns 弦.

Returns:



23
24
25
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 23

def quarter
  @quarter
end

#remainderCycle::AbstractRemainder (readonly)

Returns 大余小余.

Returns:



21
22
23
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 21

def remainder
  @remainder
end

Instance Method Details

#add_quarterObject

弦の分だけ太陽地点を進める



60
61
62
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 60

def add_quarter
  remainder.add!(quarter)
end

#interval(index:) ⇒ Cycle::Remainder

Note:

継承で暦ごとの入気定日加減数を返す

二十四節気番号に対応する入気定日加減数を返す

Parameters:

  • index (Integer)

    二十四節気番号

Returns:

  • (Cycle::Remainder)

    入気定日加減数



73
74
75
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 73

def interval(index:)
  # abstract
end

#interval_sizeInteger

Note:

継承で暦ごとの入気定日加減数の要素数を返す

入気定日加減数の要素数を返す

Returns:

  • (Integer)

    入気定日加減数の要素数



84
85
86
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 84

def interval_size
  # abstract
end

#invalid?True, False

無効かどうか

Returns:

  • (True)

    無効

  • (False)

    有効



53
54
55
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 53

def invalid?
  @index == -1
end

#runObject

入定気を計算する



41
42
43
44
45
# File 'lib/zakuro/calculation/stella/solar/abstract_location.rb', line 41

def run
  return current if calculated

  first
end