Method: When::CalendarNote::Japanese#term
- Defined in:
- lib/when_exe/region/japanese/notes.rb
#term(date, parameter = nil, precision = date.precision) ⇒ When::TM::CalDate
太陽の位置 => 日時
535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 |
# File 'lib/when_exe/region/japanese/notes.rb', line 535 def term(date, parameter=nil, precision=date.precision) dates = _to_date_for_note(date) result = dates.cal4note.s_terms.term(date, parameter) patch = SolarTerms::Patch[result.to_i] return result unless patch num, den = parameter.kind_of?(String) ? parameter.split('/', 2) : parameter num = (num || @num || 0).to_f den = (den || @den || 360).to_f diff = (num - patch[0] + 1) % den - 1 return result if diff == 0 patched = result + When::P1D * diff result.cal_date[0..-2] = patched.cal_date[0..-2] result.cal_date[-1] = When::Coordinates::Pair.new(patched.cal_date[-1], -diff) result end |