Rubyで日付の計算するならactive_support使っとけって世間で言われてるけどマジだわ

最近、RubyRailsを使わずに開発をする機会があるのですが、日付に関する計算は結構面倒なことが多く、コードも汚くなってしまいがちです。
しかし、railsでおなじみのactive_supportを使えば、直感的に書けてしまいます。
やはりactive_supportは偉大です。

require 'rubygems'
require 'active_support/all'

date = Date.today #<Date: 2013-06-08 ((2456452j,0s,0n),+0s,2299161j)>

date.tommorrow # 翌日(Sun, 09 Jun 2013)
date.yesterday # 昨日(Fri, 07 Jun 2013)

date.next_year # 来年(Sun, 08 Jun 2014)
date.prev_year # 昨年(Fri, 08 Jun 2012)

date.beginning_of_week # 今週の初め(Mon, 03 Jun 2013)
date.end_of_week # 今週の終わり(Sun, 09 Jun 2013)

Dateクラスだけでなく、Timeクラスも同様に操作できます。
詳細はリファレンスを参照ください。

ちなみに、require 'active_support/all'の部分は、active_support 2時代は require 'active_support'という記述でよかったそうですが、active_support 3以降は'active_support'、'active_support/time'、'active_support/core_ext'の3つに細分化され、それぞれ個別に読み込むことが可能になりました。
そのため、require 'active_support'という記述だと、上記の日時系のメソッドはNoMethodErrorになります。

日付関連の操作は面倒なので非常に助かります。

参考:
http://railsdoc.com/active_support#%E6%97%A5%E4%BB%98%E9%96%A2%E9%80%A3
http://blog.livedoor.jp/sasata299/archives/51312035.html
http://memo.yomukaku.net/entries/200