2017-10-06 14 views
0

私は自分のUIに表示するのに偽の時間を使用しています。私はこのようなランダムな時間を操作しています。ルビーの偽の時間の中で、最も近い半時間に1時間または1時間に丸めますか?

date: Time.zone.now - (i % 9).days - rand(3).days - rand(2).hours + rand(60).minutes 

しかし、私は3.35午後、私はそれをどのように行うことができますあなたが知っています3.30

になっている最も近い時間に丸めたいですか?あなたがこの方法 との時間クラスを拡張することができます

答えて

2

私は普通core_ext/libディレクトリに

# lib/core_ext/time.rb 
class Time 
    def round_off(seconds = 60) 
    Time.at((self.to_f/seconds).round * seconds) 
    end 
end 

これを行う今、私はこれが可能であることを願ってい

time = Time.zone.now - rand(3).days - rand(2).hours + rand(60).minutes 
time.round_off(30.minutes) 

ような何かを行うことができますあなたを助けるため

+0

'self.to_f'に' self.'は必要ありません。 –

+0

ありがとう私は私のプロジェクトで自分のコードをテストしますが、私はそれがコードスタイル – MZaragoza

関連する問題