module Zakuro::Daien::Origin::LunarAge

LunarAge 天正閏余

Constants

BEGIN_YEAR

@return [Integer] 暦の開始年

LOGGER

@return [Output::Logger] ロガー

SYNODIC_MONTH

@return [Integer] 朔望月

TOTAL_YEAR

@return [Integer] 積年

YEAR

@return [Integer] 一年

Public Class Methods

get(western_year:) click to toggle source

対象年の天正閏余(冬至より前にある11月経朔との差 = 月齢)を算出する 太陽と月の運動による補正値を算出し、その補正結果を返す

@param [Integer] western_year 西暦年

@return [Remainder] 天正閏余

# File lib/zakuro/version/daien/stella/origin/lunar_age.rb, line 39
def self.get(western_year:)
  # 積年の開始から対象年までの年数
  total = TOTAL_YEAR + western_year - BEGIN_YEAR

  # 12朔望月に対する1年の余り(単位:分)
  remainder_minute = YEAR - (SYNODIC_MONTH * 12)

  # 朔望月に含まれなかった余り(単位:年)
  remainder_year = total % SYNODIC_MONTH

  LOGGER.debug("[01]: #{remainder_year}")

  # 天正閏余
  lunar_age = remainder_minute * remainder_year % SYNODIC_MONTH

  LOGGER.debug("[02]: #{lunar_age}")

  # 大余・小余に変換する
  Cycle::Remainder.new(total: lunar_age)
end