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