Ruby obsługuje arytmetykę dat w klasach Date i DateTime , które są częścią standardowej biblioteki Rubiego. Obie te klasy udostępniają metody # + i # - , które dodają i odejmują dni od daty lub godziny.
$ irb
> require 'date'
=> true
> (DateTime.new(2015,4,1) - 90).to_s
=> "2015-01-01T00:00:00+00:00"
> (DateTime.new(2015,4,1) - 1).to_s
=> "2015-03-31T00:00:00+00:00"
Użyj metod # << i # >> , aby operować na miesiącach zamiast dni. Arytmetyka miesięcy różni się nieco od arytmetyki dni. Użycie Date zamiast DateTime sprawia, że efekt jest bardziej oczywisty.
> (Date.new(2015, 5, 31) << 3).to_s
=> "2015-02-28"
Idąc za przykładem czasu joda, możesz napisać coś takiego w Rubim.
now = DateTime.now
ninety_days_ago = now - 90
a może po prostu
ninety_days_ago = DateTime.now - 90