Class: Time
Class Method Summary collapse
-
.from_hms(string) ⇒ Object
Creates a Time object from a h:m:s.ms representation.
- .hms_decomposition(string) ⇒ Object
Instance Method Summary collapse
-
#to_hms ⇒ Object
Converts this time into a h:m:s.ms representation.
Class Method Details
.from_hms(string) ⇒ Object
Creates a Time object from a h:m:s.ms representation. The following formats are allowed: s, s.ms, m:s, m:s.ms, h:m:s, h:m:s.ms
52 53 54 55 |
# File 'lib/utilrb/time/to_hms.rb', line 52 def self.from_hms(string) h, m, s, ms = *hms_decomposition(string) Time.at(h * 3600 + m * 60 + s, 1000 * ms) end |
.hms_decomposition(string) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/utilrb/time/to_hms.rb', line 8 def self.hms_decomposition(string) unless string =~ /(?:^|:)0*(\d*)(?:$|\.(\d*)$)/ raise ArgumentError, "#{string} found, expected [[h:]m:]s[.ms]" end hm, ms = $`, ($2 || "") s = if $1.empty? then 0 else Integer($1) end h, m = hm.split(':') if !m h, m = nil, h end if m m =~ /^0*(\d*)$/ m = $1 end m = if !m || m.empty? then 0 else Integer(m) end if h h =~ /^0*(\d*)$/ h = $1 end h = if !h || h.empty? then 0 else Integer(h) end ms = if ms =~ /^0*$/ then 0 else unless ms =~ /^(0*)(\d+)$/ raise ArgumentError, "found #{string}, expected a number" end Integer($2) * (10 ** (3 - ($2.length + $1.length))) end [h, m, s, ms] end |
Instance Method Details
#to_hms ⇒ Object
Converts this time into a h:m:s.ms representation
3 4 5 6 |
# File 'lib/utilrb/time/to_hms.rb', line 3 def to_hms sec, usec = tv_sec, tv_usec "%i:%02i:%02i.%03i" % [sec / 3600, (sec % 3600) / 60, sec % 60, usec / 1000] end |