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の提案の唯一の違いは、ナノ秒の解像度が必要な場合の精度制御です。