昨日の課題をrubyで実装してみました。
日付の計算には、active_supportを使います。
Rubyで日付の計算するならactive_support使っとけ - (゚∀゚)o彡 sasata299's blog
一つ注意するのは、
require 'active_support'
ではなく、
require 'active_support/all'
とすること。
activesupport3になって、active_support、active_support/time、active_support/core_extに
分けられて個別に読み込むようになったため、active_supportだけではNoMethodErrorになるようです。
この辺りは、以下のブログに詳しく書かれています。
実装は以下のようになりました。
#!/usr/bin/env ruby require 'rubygems' require 'active_support/all' if __FILE__ == $0 ms = ['201201', '201202', '201203', '201204', '201205', '201206', '201207', '201208', '201209', '201210', '201211', '201212'] today = Time.new ms.each {|m| if today - 6.month > Time.strptime(m, '%Y%m') printf "old: %s\n", m else printf "new: %s\n", m end } end
active_support/allを使うことで、とても直感的で簡単に比較が出来ますね。