Rubyで継続時間を表すのに最適なクラスは何ですか?
distance
およびduration
属性を持つ Run モデルを作成しています。
分と秒で作業したい場合、最も示されるクラスはtime
. ただし、分と秒だけでなく、日、月なども含まれます。Ruby で期間を保存する適切な方法は何でしょうか?
後で計算する必要があります。たとえば、平均ペース = 持続時間/距離などです。結果は 5.50 分ではなく、5'30" のように分単位で表示されます。
Rubyで継続時間を表すのに最適なクラスは何ですか?
distance
およびduration
属性を持つ Run モデルを作成しています。
分と秒で作業したい場合、最も示されるクラスはtime
. ただし、分と秒だけでなく、日、月なども含まれます。Ruby で期間を保存する適切な方法は何でしょうか?
後で計算する必要があります。たとえば、平均ペース = 持続時間/距離などです。結果は 5.50 分ではなく、5'30" のように分単位で表示されます。
Resque
次のようなものを使用して、ジョブの実行時間を計算します。
start = Time.now
#code goes here
finish = Time.now
seconds = sprintf("%0.02f", (finish - start) % 60)
minutes = (((finish - start) / 60) % 60).to_i
この例では、100 分の 1 秒まで行っていますが、必要に応じて調整し、必要に応じてsprintf
すべてを削除することもできます。それは基本的にあなたを残しますseconds = (finish - start) % 60
そして、単純なputs #{minutes}'#{seconds}"
ものはあなたが望む出力を得るでしょう.
Time.now.to_f
、 Time.now.to_i
、 Time.now.to_r
エポック (1970 年) からの秒数が得られるため、2 つの値を減算するだけで期間を見つけることができます。
UPDATEおそらく、明示的な変換と@Eugeneの提案の唯一の違いは、ナノ秒の解像度が必要な場合の精度制御です。