1

Rubyで継続時間を表すのに最適なクラスは何ですか?

distanceおよびduration属性を持つ Run モデルを作成しています。

分と秒で作業したい場合、最も示されるクラスはtime. ただし、分と秒だけでなく、日、月なども含まれます。Ruby で期間を保存する適切な方法は何でしょうか?

後で計算する必要があります。たとえば、平均ペース = 持続時間/距離などです。結果は 5.50 分ではなく、5'30" のように分単位で表示されます。

4

2 に答える 2

3

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}"ものはあなたが望む出力を得るでしょう.

于 2012-05-22T13:27:28.713 に答える
1

Time.now.to_fTime.now.to_iTime.now.to_rエポック (1970 年) からの秒数が得られるため、2 つの値を減算するだけで期間を見つけることができます。

UPDATEおそらく、明示的な変換と@Eugeneの提案の唯一の違いは、ナノ秒の解像度が必要な場合の精度制御です。

于 2012-05-22T13:59:52.197 に答える