日付の加減算

広告

Dateクラスのオブジェクトに対して加算や減算を行うことが出来ます。まずは日にち単位での加算と減算を行います。

require "date"

d = Date.today
afterDay = d + 1
beforeDay = d - 5

Dateクラスのオブジェクトに対して「+」メソッドや「-」メソッドを使って日にちを加算減算できます。上記の場合は現在の日付からDateクラスのオブジェクトを作成し、その後で1日後の日付と5日前の日付を取得しています。

次に月単位での加算と減算を行います。「<<」メソッドと「>>」メソッドを使います。

require "date"

d = Date.today
beforeMonth = d << 1
afterMonth = d >> 5

「<<」メソッドはその後に記述した数値ヶ月だけ前の日付を返します。「>>」メソッドはその後に記述した数値ヶ月だけ後の日付を返します。上記の場合は現在の日付からDateクラスのオブジェクトを作成し、その後で1ヶ月前の日付と5ヵ月後の日付を取得しています。

日付と日付の差分

2つのDateクラスのオブジェクトの差を求めることが出来ます。

require "date"

d1 = Date.today
d2 = Date.new(2007, 3 ,14)
sa = d1 - d2

Dateクラスのオブジェクトに対して「-」メソッドを使って他のDateクラスのオブジェクトを減算すると、2つのDateクラスのオブジェクトの差を取得出来ます。単位は日です。

サンプルプログラム

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

LibraryDate4.rb

#! ruby -Ks

require "date"

d1 = Date.today
d2 = Date.new(2007, 3 ,14)

print("本日の日付:", d1, "¥n")
print("3日後の日付:", d1 + 3, "¥n")
print("5日前の日付:", d1 - 5, "¥n")
print("2ヶ月後の日付:", d1 >> 2, "¥n")
print("6ヶ月前の日付:", d1 << 6, "¥n")
print("本日の日付と2007/03/14との差は", d1 - d2, "日です¥n")

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

Dateオブジェクトの加減算

( Written by Tatsuo Ikura )