2010-07-18 30 views
1

Ruby stdlib是否有表示两个时间戳之间差异的任何对象?减去两个对象Time返回浮点数秒 - 是否有任何对象,像hoursminutes等方法,最重要的是所有体面的to_s代表Ruby中的时间差异

我已经编写了太多时间的半分法,我做错了吗?

+3

为什么不写阶级正确一次,重用每次你需要它的时候? – ezpz 2010-07-18 13:52:57

回答

3

不在stdlib中,但是有一个Gem可以用于这项工作--gem。

sudo gem install duration 

您可以使用这样的:

require "duration" 
a = Time.now 
sleep(5) 
b = Time.now 
duration = Duration.new(b - a) 
# => #<Duration: 5 seconds> 
duration.seconds 
# => 5 
duration.minutes 
# => 0 

和天数,小时,周和一堆其他有用的方法。

然后,您也可以对Time,Date和其他日期时间类进行monkey-patch来返回Duration对象。

0

有一个叫time_diff这在年,月,周,日,小时,分钟回差的哈希宝石,第二