module Zakuro::Gihou::Lunar::Adjustment
Adjustment
補正値情報
Constants
- DAY_LIMIT
遠/近の地点での中間
7、14、21日の小余の境界は下記のようにして求めた
* 宣明暦の7日の小余は7465である。入暦は1始まりなので、0始まりで表現すると 6-7465 となる * 6 * 8400(統法) + 7465(初益) = 57865 * これを儀鳳暦に変えると、 57865 / 1340(総法) = 6 余り 1190.845238.. * これを入暦の1始まりに置き換え、少数部を消すと 7-1190、これが7日目となる * 同様の方法で14日と21日も求める * 57865 * 2 = 115730 / 1340(総法) = 13 余り 1041.690476 = 14-1041 * 57865 * 3 = 173595 / 1340(総法) = 20 余り 892.5357143 = 21-892
28日は変日の範囲内743とした。
* 宣明暦では 進退 14-6529(1始まりなので実質13) * 2 = 27-4658 * 暦周 27-4658.19 に一致する。これを変日27-743.1と同等とみなした
@return [Hash<Integer>] 遠/近の地点での中間
- LIST
@note 7日、14日、21日、28日の小余は
DAY_LIMIT
を参照のこと@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/gihou/stella/lunar/adjustment.rb, line 238 def self.minus_minute(day:, minute:) limit = DAY_LIMIT.fetch(day, -1) # 該当なし return minute if limit == -1 return minute unless minute > limit minute - limit end
specify(day:, minute:)
click to toggle source
月軌道の補正に必要な基本値を引き当てる
@param [True, False] forward 進(遠地点より数える)/退(近地点より数える) @param [Integer] day 大余 @param [Integer] minute 小余
@return [Row] 補正値
# File lib/zakuro/version/gihou/stella/lunar/adjustment.rb, line 219 def self.specify(day:, minute:) LIST.each do |row| # NOTE: 範囲が重複している場合、最初に引き当てたほうを優先する return row if row.match?(day: day, minute: minute) end raise ArgumentError.new, "invalid parameter: #{day}/#{minute}" end