2016年4月19日火曜日

rubyの日付をeachでまわす

rubyで特定の日付から数日分eachでループでまわしたいときがあって、
それをやるのに2度も同じところではまったので備忘メモです。

まずはダメなパターン
(Time.now..(Time.now + 6.days)).each do |day|
 p day
end

こっちはOKなパターン
(Date.today..(Date.today + 6.days)).each do |day|
  p day
end

Timeは数値ではないので、離散形式でテストされる。 しかしTimeを用いた範囲は離散範囲ではない。
ということで、Timeではだめなので、やるときにはDateでやるか、
eachじゃない回し方をするのがよさそうです。

参考URL
http://sekai.hateblo.jp/entry/2013/10/23/081950

0 件のコメント:

コメントを投稿