7.6. Converting Between Seconds and Larger Units
Sometimes we want to take a number of seconds and convert to days, hours, minutes, and seconds. This following routine will do just that:
def sec2dhms(secs) time = secs.round # Get rid of microseconds sec = time % 60 # Extract seconds time /= 60 # Get rid of seconds mins = time % 60 # Extract minutes time /= 60 # Get rid of minutes hrs = time % 24 # Extract hours time /= 24 # Get rid of hours days = time # Days (final remainder) [days, hrs, mins, sec] # Return array [d,h,m,s] end t = sec2dhms(1000000) # A million seconds is... puts "#{t[0]} days," # 11 days, puts "#{t[1]} hours," # 13 hours, puts "#{t[2]} minutes," # 46 minutes, puts " and #{t[3]} seconds." # and 40 seconds.
We could, of course, ...
Get The Ruby Way: Solutions and Techniques in Ruby Programming, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.