0
比較倍我使用這個代碼進行比較次數:在滑軌
(time1.to_i - time2.to_i).abs < 5
的目的是,如果兩個時間彼此在5秒內測量,它們將是相等的。我使用它來比較記錄的更新,因此5秒鐘可以作爲緩衝區,並且當記錄間隔僅幾秒鐘時停止返回false
的代碼。
有沒有更好的方法來做到這一點?
比較倍我使用這個代碼進行比較次數:在滑軌
(time1.to_i - time2.to_i).abs < 5
的目的是,如果兩個時間彼此在5秒內測量,它們將是相等的。我使用它來比較記錄的更新,因此5秒鐘可以作爲緩衝區,並且當記錄間隔僅幾秒鐘時停止返回false
的代碼。
有沒有更好的方法來做到這一點?
在Ruby中,您可以直接減去兩個Time對象以獲得以秒爲單位的差異。 Rails提供對整數一些便利助手將它們轉換成秒,以及:
(time1 - time2).abs < 5.seconds
如果你知道time2
總是time1
之後,你就可以擺脫的abs
:
time2 - time1 < 5.seconds
有一個叫寶石[TIME_DIFFERENCE](https://github.com/tmlee/time_difference)。它沒有積極維護,但很容易遵循和合並。它給你這樣的語法:'TimeDifference.between(start_time,end_time).in_years'。 – moveson