🗂
Ruby on Railsで時間を15分単位で切り上げる方法
Ruby on Railsで時間を15分単位で切り上げる方法
Railsで、Timeオブジェクトを15分間隔で切り上げて丸める必要があったので、メモ。
こういうどうでもいいピンポイントな処理って、検索してもなかなか見つからないですよね。
やりたいこと
Timeオブジェクトを、下記のルールで切り上げしたい。
0分 -> 0分
1~15分 -> 15分
16~30分 -> 30分
31~45分 -> 45分
46~59分 -> 60分 (1時間プラスされる)
(例)
10:07 -> 10:15
10:31 -> 10:45
10:55 -> 11:00
結論
綺麗な計算なんか必要ねえ!!!力こそパワーだ!!!
# Timeオブジェクトをメソッドにおくるだけ。
time_ceil_quarter(Time.current)
# 15分毎に切り上げるメソッド
def time_ceil_quarter(time)
min = time.min
case min
when 1..15
q = 15
when 16..30
q = 30
when 31..45
q = 45
when 46..59
q = 60
else
q = 0
end
time += (q-min).minutes
end
以上
解説
Timeオブジェクトの分(min)を取得して、切り上げ先の数値との差分をプラスしているだけです。
書いた経緯
gemを用いる記事はあったのですが、gem追加できない案件で必要だったため、ゴリ押ししました。
お役にたてましたら、いいね押していただけるとモチベ上がります!
Discussion