それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ruby でDateTime(日付時刻)を1時間進める

ruby で日付時刻を進める。

方法はとても簡単です。

DateTime.now + 1.0/24 # 1時間進める
DateTime.now + 2.0/24 # 2時間進める

ポイントは、Floatで与えること。

DateTime.now + 1/24 # だめ! Integerだから。
DateTime.now + 1/24.0 # 可能! Floatだから。

超かんたん。

単純に四則演算で、時間を操作できるのは素晴らしい。加算だけでいいから楽ね。

サンプル

=> #<DateTime: 2015-03-19T16:38:12+09:00 ((2457101j,27492s,679731000n),+32400s,2299161j)>
>> (d).strftime("%F %T")
=> "2015-03-19 16:38:12"
>> (d + 1.0).strftime("%F %T")
=> "2015-03-20 16:38:12"
>> (d + 1.0/24).strftime("%F %T")
=> "2015-03-19 17:38:12"
>> (d + 1.0/24*3).strftime("%F %T")
=> "2015-03-19 19:38:12"
>>