Module: Zakuro::Version::Daien::Origin::WinterSolstice

Defined in:
lib/zakuro/version/daien/stella/origin/winter_solstice.rb

Overview

WinterSolstice 冬至

Constant Summary collapse

REMAINDER_ALL_YEAR =

Returns 通余.

Returns:

  • (Integer)

    通余

Const::Number::Derivation::REMAINDER_ALL_YEAR
SIXTY_DAYS =

Returns 60日.

Returns:

  • (Integer)

    60日

Const::Number::Derivation::SIXTY_DAYS
TOTAL_YEAR =

Returns 積年.

Returns:

  • (Integer)

    積年

Const::Number::Stack::TOTAL_YEAR
BEGIN_YEAR =

Returns 暦の開始年.

Returns:

  • (Integer)

    暦の開始年

Const::Number::Stack::BEGIN_YEAR
LOGGER =

Returns ロガー.

Returns:

Output::Logger.new(location: 'winter_solstice')

Class Method Summary collapse

Class Method Details

.get(western_year:) ⇒ Remainder

対象年の前年の冬至を求める

Parameters:

  • western_year (Integer)

    西暦年

Returns:

  • (Remainder)

    前年の冬至



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/zakuro/version/daien/stella/origin/winter_solstice.rb', line 41

def get(western_year:)
  # 積年の開始から対象年までの年数
  total = TOTAL_YEAR + western_year - BEGIN_YEAR
  remainder_year = total % SIXTY_DAYS

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

  # 通余を使う
  winter_solstice_minute = (remainder_year * REMAINDER_ALL_YEAR) % SIXTY_DAYS

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

  Cycle::Remainder.new(total: winter_solstice_minute)
end