- Home ›
- Ruby入門 ›
- 日付(Date、DateTime)クラス ›
- HERE
日付の加減算
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クラスのオブジェクトの差を取得出来ます。単位は日です。
サンプルプログラム
では簡単なサンプルで試してみます。
#! 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")
実行結果は次のようになります。
( Written by Tatsuo Ikura )