Method: Numeric#to_hms

Defined in:
lib/epitools/core_ext/numbers.rb

#to_hmsObject

Convert seconds to hours:minutes:seconds (hours is dropped if it’s zero)



215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
# File 'lib/epitools/core_ext/numbers.rb', line 215

def to_hms
  seconds = self

  days,    seconds = seconds.divmod(86400)
  hours,   seconds = seconds.divmod(3600)
  minutes, seconds = seconds.divmod(60)
  seconds, frac    = seconds.divmod(1)

  result = "%0.2d:%0.2d" % [minutes,seconds]
  result = ("%0.2d:" % hours) + result   if hours > 0 or days > 0
  result = ("%0.2d:" % days)  + result   if days > 0
  result += ("." + frac.round(2).to_s.split(".").last) if frac > 0

  result
end