module Ohai::Mixin::SecondsToHuman

Public Instance Methods

seconds_to_human(seconds) click to toggle source

given the number of seconds return a day/hours/minutes/seconds human form

@param seconds [Integer]

@return String

# File lib/ohai/mixin/seconds_to_human.rb, line 28
def seconds_to_human(seconds)
  days = seconds.to_i / 86400
  seconds -= 86400 * days

  hours = seconds.to_i / 3600
  seconds -= 3600 * hours

  minutes = seconds.to_i / 60
  seconds -= 60 * minutes

  if days > 1
    sprintf("%d days %02d hours %02d minutes %02d seconds", days, hours, minutes, seconds)
  elsif days == 1
    sprintf("%d day %02d hours %02d minutes %02d seconds", days, hours, minutes, seconds)
  elsif hours > 0
    sprintf("%d hours %02d minutes %02d seconds", hours, minutes, seconds)
  elsif minutes > 0
    sprintf("%d minutes %02d seconds", minutes, seconds)
  else
    sprintf("%02d seconds", seconds)
  end
end