module DateTimeLike::DateTimeLikeExtension

Public Instance Methods

jd(jday, hour = 0, minute = 0, second = 0, offset = 0) click to toggle source

Creates a DateTimeFixedDPY object from the given Julian day number and Hour/Minute/Second.

@param jday [Interger] @param hour [Interger] @param minute [Integer] @param second [Float] @param offset [Rational]

@return [DateTimeFixedDPY]

# File lib/timesteps/datetimelike.rb, line 45
def jd (jday, hour = 0, minute = 0, second = 0, offset = 0)
  year, month, day = jday2date(jday)
  return self.new(year, month, day, hour, minute, second, offset)
end
jday2date(jday) click to toggle source

Calculate Year/Month/Day fron Julian day number

@param jday [Integer]

@return [Array] [year, month, day]

# File lib/timesteps/datetimelike.rb, line 14
def jday2date (jday)
  dpy = self::DPY
  dpm = self::DPM
  jday = jday.round
  year = jday/dpy
  doy  = jday - year*dpy + 1
  year = year - 4712
  month = 0
  day   = 0
  days  = 0
  (1..12).each do |m|
    if days + dpm[m] >= doy
      month = m
      day = doy - days 
      break
    end
    days += dpm[m]
  end
  return year, month, day
end