Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Rubyで次の月や月末の曜日を調べたいときはactive_supportにお願いしてみよう

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"

まとめ

ご覧頂いたように、日付まわりだけでも便利メソッドが山盛りあります。
たしかに標準ライブラリではありませんが、
自分でやるよかナンボも美しく早い実装なのは間違いありません。
あるもんは使いましょう