module Zakuro::Senmyou::Lunar::Adjustment

Adjustment 補正値情報

Constants

HALF_DAYS

@return [Integer] 遠/近の地点での中間

LIST

@return [Array<Row>] 月の補正値情報

Public Class Methods

minus_minute(day:, minute:) click to toggle source

小余の下げ幅を求める

@param [Integer] day 大余 @param [Integer] minute 小余

@return [Integer] 小余の下げ幅

# File lib/zakuro/version/senmyou/stella/lunar/adjustment.rb, line 227
def self.minus_minute(day:, minute:)
  return minute unless HALF_DAYS.include?(day)

  return minute unless minute > Range::HALF

  minute - Range::HALF
end
specify(forward:, day:, minute:) click to toggle source

月軌道の補正に必要な基本値を引き当てる

@param [True, False] forward 進(遠地点より数える)/退(近地点より数える) @param [Integer] day 大余 @param [Integer] minute 小余

@return [Row] 補正値

# File lib/zakuro/version/senmyou/stella/lunar/adjustment.rb, line 208
def self.specify(forward:, day:, minute:)
  LIST.each do |row|
    # NOTE: 範囲が重複している場合、最初に引き当てたほうを優先する
    return row if row.match?(forward: forward, day: day, minute: minute)
  end

  raise ArgumentError.new, "invalid parameter: #{forward}/#{day}/#{minute}"
end