Railsなどで良く見かけるActiveSupportさんは実はスゴイ子です。
これをつかうと、日付まわりで相当楽ができます。
require 'active_support/core_ext/date'
してあげれば導入可能です
月末・月初まわり
2014年8月初日の曜日を調べるのもこの通り。
Date.today.at_beginning_of_month.strftime("%A") => "Friday"
N月1日を調べるいつぞやの記事も、かなり見通しよく書く事ができます
毎回Dateクラスのインスタンス生成だとか、
next_monthで足し算したりだとかはしなくともよいのです
date = Date.new(2014,1,1) (1..12).each {|i| p date.change(month: i).strftime("%m/%d Week#%2V %A") } #>> "01/01 Week#01 Wednesday" #>> "02/01 Week#05 Saturday" #>> "03/01 Week#09 Saturday" #>> "04/01 Week#14 Tuesday" #>> "05/01 Week#18 Thursday" #>> "06/01 Week#22 Sunday" #>> "07/01 Week#27 Tuesday" #>> "08/01 Week#31 Friday" #>> "09/01 Week#36 Monday" #>> "10/01 Week#40 Wednesday" #>> "11/01 Week#44 Saturday" #>> "12/01 Week#49 Monday"
四半期まわり
四半期前を調べる事も...できちゃいます。
Date.today.prev_quarter.jisx0301 => "H26.05.10"
四半期始まりも分かります。そう、active_supportならね
Date.today.beginning_of_quarter.jisx0301 => "H26.07.01"
まとめ
ご覧頂いたように、日付まわりだけでも便利メソッドが山盛りあります。
たしかに標準ライブラリではありませんが、
自分でやるよかナンボも美しく早い実装なのは間違いありません。
あるもんは使いましょう