月末の日付でDateクラスのオブジェクトを作成する

Date クラスの new メソッドでは年月日の各値を指定しますが、日の値に -1 を指定した場合は月の最後の日を指定したことになります。同じように -2 を指定した場合は最後の日の前日、 -3 を指定した場合は最後の日の二日前を指定ことになります。このことを利用して月末の日付を表す Date クラスのオブジェクトを作成できます。ここでは Ruby で月末の日付で Date クラスのオブジェクトを作成する方法について解説します。

(Last modified: )

月末の日付でDateクラスのオブジェクトを作成する

例えば 2022 年 10 月 12 日の Date クラスのオブジェクトは次のように作成していました。

require "date"

day = Date.new(2022, 10, 12)

もし 2022 年 10 月の月末の Date クラスのオブジェクトを作成する場合は、日付に 31 と指定してもいいのですが、代わりに -1 を指定するとその月の最後の日を指定したのと同じことになります。例えば 2022 年 10 月の月末の Date クラスは次のように作成できます。

require "date"

day = Date.new(2022, 10, -1)

これは次のように記述した場合と同じです。

require "date"

day = Date.new(2022, 10, 31)

月ごとに最後の日はバラバラなので、最後の日を同じ形式で指定したい場合などに利用できます。

サンプルコード

では簡単なサンプルで試してみます。

# encoding: UTF-8

require "date"

day1 = Date.new(2022, 1, -1)
puts(day1)
day2 = Date.new(2022, 2, -1)
puts(day2)
day3 = Date.new(2022, 3, -1)
puts(day3)
day4 = Date.new(2022, 4, -1)
puts(day4)

実行結果は次のようになります。

月末日のDateクラスのオブジェクトを作成

-- --

Ruby で月末の日付で Date クラスのオブジェクトを作成する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。