2
我想確定經過時間減去任何中斷的持續時間。下面的方法似乎效率低下,很愚蠢是否有更好的方法?Ruby時間計算
用戶指定end_time和start_time並將任何中斷記錄爲表示分鐘的整數。
def duration
((end_time - start_time).seconds - interrupt.minutes)/60
end
我想確定經過時間減去任何中斷的持續時間。下面的方法似乎效率低下,很愚蠢是否有更好的方法?Ruby時間計算
用戶指定end_time和start_time並將任何中斷記錄爲表示分鐘的整數。
def duration
((end_time - start_time).seconds - interrupt.minutes)/60
end
你有沒有進去看了Benchmarks Module?
似乎做你想要什麼,它是Ruby的核心庫的一部分。
require 'benchmark'
Benchmark.bm do |x|
x.report block_to_time
end
它的輸出與unix time命令非常相似。詳細說明在內核空間花費的時間,在用戶空間花費的時間和CPU總時間,以及實際耗用的時間。
我應該澄清(現在有)這些值來自用戶輸入。儘管基準模塊雖然看起來非常有用,否則。 – ahsteele 2009-10-29 04:08:36
爲什麼你想從秒減去分鐘?它不應該是'interrupt.minutes * 60'嗎? – Swanand 2009-10-29 06:36:31
我不知道我得到什麼效率低下或愚蠢!代碼看起來相當富有表現力,儘管'.seconds'可能是不必要的。你認爲它有多高效和明智? – 2009-10-29 08:44:27
哦,@Swanand - 我剛剛檢查過:一切都在幾秒鐘內,所以4.minutes返回240秒。也許該函數應該返回秒,並在幾分鐘內顯示格式化? – 2009-10-29 08:46:33