Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > dateライブラリ > Dateクラス > <<
self << n -> Date
[permalink][rdoc]self より n ヶ月前の日付オブジェクトを返します。 n は数値でなければなりません。
require 'date' Date.new(2001,2,3) << 1 #=> #<Date: 2001-01-03 ...> Date.new(2001,2,3) << -2 #=> #<Date: 2001-04-03 ...>
対応する月に同じ日が存在しない時は、代わりにその月の末日が使われます。
require 'date' Date.new(2001,3,28) << 1 #=> #<Date: 2001-02-28 ...> Date.new(2001,3,31) << 1 #=> #<Date: 2001-02-28 ...>
このことは以下のように、もしかすると予期しない振る舞いをするかもしれません。
require 'date' Date.new(2001,3,31) << 2 #=> #<Date: 2001-01-31 ...> Date.new(2001,3,31) << 1 << 1 #=> #<Date: 2001-01-28 ...> Date.new(2001,3,31) << 1 << -1 #=> #<Date: 2001-03-28 ...>
Date#prev_month も参照してください。