--_778897c3-bc4d-49b9-b2f3-70e1e279e603_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


> 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 fitour requirements 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/

--_778897c3-bc4d-49b9-b2f3-70e1e279e603_--