Method: When::TimeStandard::TemporalHourSystem#to_dynamical_time

Defined in:
lib/when_exe/timestandard.rb

#to_dynamical_time(time) ⇒ Numeric

temporal hour system を dynamical time に変換する

Parameters:

  • time (Numeric)

    temporal hour system

Returns:



645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
# File 'lib/when_exe/timestandard.rb', line 645

def to_dynamical_time(time)
  noon, frac = When::TM::JulianDate._t_to_d(time).divmod(1)

  r, *p =
    case (frac * 4).floor
    when 3 ; [-1.5, [noon+1, -1],[noon+1, +1]] # morning
    when 0 ; [+0.5, [noon,   -1],[noon,   +1]] # afternoon
    else   ; [-0.5, [noon,   +1],[noon+1, -1]] # night
    end

  s, e = p.map {|v| 
    When::TM::JulianDate._d_to_t(@formula.day_event(_to_dynamical_date(v[0]), v[1], When.Resource('_ep:Sun'), @height))
  }

  s + (e - s) * (frac * 2 + r)
end