2010-07-18 48 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這在年,月,周,日,小時,分鐘回差的哈希寶石,第二