このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 3.2 リファレンスマニュアル

instance method Date#<<

self << n -> Date[permalink][rdoc][edit]

self より n ヶ月前の日付オブジェクトを返します。 n は数値でなければなりません。

require 'date'
p Date.new(2001,2,3)  <<  1 #=> #<Date: 2001-01-03 ...>
p Date.new(2001,2,3)  << -2 #=> #<Date: 2001-04-03 ...>

対応する月に同じ日が存在しない時は、代わりにその月の末日が使われます。

require 'date'
p Date.new(2001,3,28) << 1 #=> #<Date: 2001-02-28 ...>
p Date.new(2001,3,31) << 1 #=> #<Date: 2001-02-28 ...>

このことは以下のように、もしかすると予期しない振る舞いをするかもしれません。

require 'date'
p Date.new(2001,3,31) << 2       #=> #<Date: 2001-01-31 ...>
p Date.new(2001,3,31) << 1 << 1  #=> #<Date: 2001-01-28 ...>

p Date.new(2001,3,31) << 1 << -1 #=> #<Date: 2001-03-28 ...>

Date#prev_month も参照してください。

[PARAM] n:
月数