Method: Stardate#initialize
- Defined in:
- lib/stardate.rb
#initialize(t = Time.now) ⇒ Stardate
Returns a new instance of Stardate.
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/stardate.rb', line 63 def initialize(t = Time.now) case t.class.to_s when "Stardate" @stardate = t.stardate return when "Fixnum" @stardate = t.to_f return when "Float" @stardate = t return when "DateTime" datetime = t.to_time.utc when "Time" datetime = t.utc when "ActiveSupport::TimeWithZone" datetime = t.utc when "String" datetime = Time.parse(t).utc else raise "Unknown conversion: #{t.class}" end y0 = datetime.year t0 = Time.utc(y0).to_f t1 = Time.utc(y0 + 1).to_f @stardate = y0 + (datetime.to_f - t0)/(t1 - t0) end |