Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Dateライブラリで末日を指定する場合、日付を-1にすればよい

月の末尾を調べたい場合……ActiveSupportを使うのも手ですが、
実は標準添付のDateライブラリで普通に用を為します。
ためしに、2月の末日を調べてみると……

Date.new(2015,2,-1)
#=> #<Date: 2015-02-28 ((2457082j,0s,0n),+0s,2299161j)>

Date.new(2014,2,-1)
#=> #<Date: 2014-02-28 ((2456717j,0s,0n),+0s,2299161j)>

Date.new(2013,2,-1)
#=> #<Date: 2013-02-28 ((2456352j,0s,0n),+0s,2299161j)>

Date.new(2012,2,-1)
#=> #<Date: 2012-02-29 ((2455987j,0s,0n),+0s,2299161j)>

と、ちゃんと閏年の時もよろしくやってくれます。