Re: Can Ruby print out time difference (duration) readily?
by Ehsanul Hoque other posts by this author
Nov 5 2009 2:26AM messages near this date
Re: Can Ruby print out time difference (duration) readily?
|
Re: Can Ruby print out time difference (duration) readily?
> Can Ruby do something like this?
>
> irb(main):001:0> start = Time.now
> => Thu Nov 05 01:02:54 -0800 2009
>
> irb(main):002:0> Time.now - start
> => 25.239
>
> irb(main):003:0> (Time.now - start).duration
> => "25 seconds"
> and similarly, report
>
> 23 minutes and 35 seconds
> 1 hour and 33 minutes
> 2 days and 3 hours
> (either report the whole duration, up to how many seconds, or report up
> to 2 numbers and units (if day and hour is reported, then no need to
> tell how many minutes)
You can try something like below (change with conditional statements to fit your requirement
s of upto 2 numbers):
class Time
def duration
Time.now - self
end
def duration_string
difference = duration
days = (difference/(3600*24)).to_i
hours = ((difference%(3600*24))/3600).to_i
mins = ((difference%(3600))/60).to_i
secs = (difference%60).to_i
"#{days} days, #{hours} hours, #{mins} minutes and #{secs} seconds"
end
end
start = Time.new
sleep(5)
puts start.duration_string
_________________________________________________________________
Hotmail: Trusted email with Microsoft's powerful SPAM protection.
http://clk.atdmt.com/GBL/go/177141664/direct/01/
http://clk.atdmt.com/GBL/go/177141664/direct/01/
Thread:
Jian Lin
Intransition
Phrogz
Ehsanul Hoque
Mark Thomas
|