2009-08-07 43 views
1

我有這條線,這表明分和秒。但爲了更高的準確性,我還必須增加毫秒。我如何在這一行添加,或者有更簡單的方法來獲得所需的結果?Ruby on Rails的詮釋,以分::秒::毫秒

@duration = [cd.ExactDuration/60000000, cd.ExactDuration/1000000 % 60].map{|t| t.to_s.rjust(2, '0') }.join(':')) 

確切的持續時間類型保存在微秒。所以第一個轉換成微秒到分鐘,第二個部分是微秒到秒。現在我需要添加毫秒。

回答

2

cd.ExactDuration/1000 % 1000應該做的伎倆。

當然你也可能想調整格式,因爲這是一個你不想在2寬的字段中右對齊的數據;-)。我建議sprintf字符串格式,雖然我知道它的使用是不是很直觀,除非你來自C背景。

+0

這樣的作品,是有辦法只是使它精確到最後2位數字,但。 例如,我最後的回答00:03:109 我希望00:03:11 – Ryan 2009-08-07 17:11:33

+0

當然 - 那麼你*不會像你說的那樣要毫秒,而是百分之一秒(百分之一秒) - - 然後你不需要調整你的格式;-)。 '((cd.ExactDuration + 5000)/ 10000)%100'就可以做到,包括你現在暗示的四捨五入。 – 2009-08-08 00:06:43

+0

天才,謝謝。 – Ryan 2009-08-10 14:02:23