Module: DateTimeLike::DateTimeLikeExtension

Defined in:
lib/timesteps/datetimelike.rb

Instance Method Summary collapse

Instance Method Details

#jd(jday, hour = 0, minute = 0, second = 0, offset = 0) ⇒ DateTimeFixedDPY

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

Parameters:

  • jday (Interger)
  • hour (Interger) (defaults to: 0)
  • minute (Integer) (defaults to: 0)
  • second (Float) (defaults to: 0)
  • offset (Rational) (defaults to: 0)

Returns:

  • (DateTimeFixedDPY)


45
46
47
48
# 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) ⇒ Array

Calculate Year/Month/Day fron Julian day number

Parameters:

  • jday (Integer)

Returns:

  • (Array)
    year, month, day


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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