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
以便可以在任何数字类( Fixnum
, Bignum
或Float
)上调用该方法。
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