Module: Zakuro::Calculation::Lunar::ChoukeiValue
- Defined in:
- lib/zakuro/calculation/stella/lunar/choukei_value.rb
Overview
ChoukeiValue 再考長慶宣明暦算法
Constant Summary collapse
- LOGGER =
Output::Logger.new(location: 'choukei_value')
Class Method Summary collapse
-
.remainder_without_second(remainder:) ⇒ Integer, Float
秒がない大余小余にする.
-
.rounded_day(per:, denominator:, minute:) ⇒ Integer
四捨五入した大余を返す.
Class Method Details
.remainder_without_second(remainder:) ⇒ Integer, Float
Note:
815年で大余繰り上げあり
秒がない大余小余にする
52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/zakuro/calculation/stella/lunar/choukei_value.rb', line 52 def remainder_without_second(remainder:) # LOGGER.debug("minute.to_f: #{remainder.minute.to_f}") # LOGGER.debug("second.to_f: #{remainder.second.to_f}") # LOGGER.debug("base_minute: #{remainder.base_minute}") # LOGGER.debug( # "second.to_f / base_minute: #{remainder.second.to_f / remainder.base_minute}" # ) adjusted = remainder.class.new( day: remainder.day, minute: remainder.floor_minute, second: 0 ) adjusted.carry! [adjusted.day, adjusted.minute] end |
.rounded_day(per:, denominator:, minute:) ⇒ Integer
四捨五入した大余を返す
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/zakuro/calculation/stella/lunar/choukei_value.rb', line 28 def rounded_day(per:, denominator:, minute:) # LOGGER.debug("minute: #{minute}") remainder_minute = Type::OldFloat.new((per * minute).to_f) # LOGGER.debug("remainder_minute.get: #{remainder_minute.get}") day = day_only(remainder_minute: remainder_minute.get, denominator: denominator) # 繰り上げ結果を足す day += carried_minute(remainder_minute: remainder_minute, denominator: denominator) day end |