TimeのRange#stepを使うときのTIPS
たとえば、ある日「X」からある日「Y」まで、一日ごとの日付の入った配列を作りたいとき。
単純に
(stdate..eddate).step(3600*24).to_a.map{|t| t.strftime('%Y/%m/%d')}
とすると、すごく遅い。
そこで、
(stdate.to_i)..(eddate.to_i)).step(3600*24).to_a.map{|t| Time.at(t).strftime('%Y/%m/%d')}
のように、一度数値(秒)に直してあげると、劇的に早くなる。
なんとなく理由も想像できるけど、未確認・・・
ちなみに、バージョンはruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]