Ruby可以随时打印时间差(持续时间)吗?

Ruby可以做这样的事吗?

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"

(持续时间方法现在不存在)...并且同样地报告

23 minutes and 35 seconds
1 hour and 33 minutes
2 days and 3 hours

(或者报告整个持续时间,多达几秒钟,或者报告多达2个数字和单位(如果报告日期和小时,则不需要告诉多少分钟))


这是一个快速而简单的实现方法。 为秒,分钟,小时和天设置预定义的测量。 然后根据数字的大小,用这些单位输出适当的字符串。 我们将扩展Numeric以便可以在任何数字类( FixnumBignumFloat )上调用该方法。

class Numeric
  def duration
    secs  = self.to_int
    mins  = secs / 60
    hours = mins / 60
    days  = hours / 24

    if days > 0
      "#{days} days and #{hours % 24} hours"
    elsif hours > 0
      "#{hours} hours and #{mins % 60} minutes"
    elsif mins > 0
      "#{mins} minutes and #{secs % 60} seconds"
    elsif secs >= 0
      "#{secs} seconds"
    end
  end
end

有一个可用的宝石https://rubygems.org/gems/time_diff

这给了一个散列的区别


为https://rubygems.org/gems/time_difference尝试使用ruby gem - Ruby文档的Time Difference gem,网址为https://github.com/tmlee/time_difference

start_time = Time.new(2013,1)
end_time = Time.new(2014,1)
TimeDifference.between(start_time, end_time).in_years
=> 1.0
链接地址: http://www.djcxy.com/p/17091.html

上一篇: Can Ruby print out time difference (duration) readily?

下一篇: jQuery Tips and Tricks