W języku C# istnieje metoda AddDays ([liczba dni]) w klasie DateTime.Czy są jakieś add_days w datach ruby?
Czy istnieje jakaś metoda podobna do tej w ruby?
W języku C# istnieje metoda AddDays ([liczba dni]) w klasie DateTime.Czy są jakieś add_days w datach ruby?
Czy istnieje jakaś metoda podobna do tej w ruby?
Klasa Date
zapewnia operatorowi +
, który właśnie to robi.
>> d = Date.today
=> #<Date: 4910149/2,0,2299161>
>> d.to_s
=> "2009-08-31"
>> (d+3).to_s
=> "2009-09-03"
>>
Z Date class:
+ (n)
Zwraca nowy obiekt Date, który jest n dni później niż obecnie.
n może być wartością ujemną, w którym to przypadku nowa data jest wcześniejsza niż aktualna; jednak # -() może być bardziej intuicyjny.
Jeśli n nie jest wartością numeryczną, zostanie wygenerowany TypeError. W szczególności dwóch dat nie można dodawać do siebie.
W szyn są bardzo użyteczne sposoby Fixnum
klasy dla tego (tutaj n
jest Fixnum
np. 1,2,3....
)
Date.today + n.seconds # you can use 1.second
Date.today + n.minutes # you can use 1.minute
Date.today + n.hours # you can use 1.hour
Date.today + n.days # you can use 1.day
Date.today + n.weeks # you can use 1.week
Date.today + n.months # you can use 1.month
Date.today + n.years # you can use 1.year
Są one wygodne Time
klasy też.
PS: wymagają Całość Extensions Pomoc Rdzeń aby z nich korzystać w Ruby
require 'active_support/core_ext'
Te metody są specyficzne dla Railsów – Max
Date.new(2001,9,01).next_day(30) # 30 - numbers of day
# => #<Date: 2001-10-01 ...
Dodaj wyjaśnienie w odpowiedzi na pytanie, w jaki sposób ta odpowiedź pomaga OP w naprawianiu bieżącego problemu –
myślę next_day
jest bardziej czytelny niż +
wersji.
require 'date'
DateTime.new(2016,5,17)
# => #<DateTime: 2016-05-17T00:00:00+00:00 ((2457526j,0s,0n),+0s,2299161j)>
DateTime.new(2016,5,17).next_day(10)
# => #<DateTime: 2016-05-27T00:00:00+00:00 ((2457536j,0s,0n),+0s,2299161j)>
Date.new(2016,5,17)
# => #<Date: 2016-05-17 ((2457526j,0s,0n),+0s,2299161j)>
Date.new(2016,5,17).next_day(10)
# => #<Date: 2016-05-27 ((2457536j,0s,0n),+0s,2299161j)>
http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/Date.html#method-i-next_day.
użyj szyn ... Możesz mieć coś takiego 't = Time.now; t + 3.days' – zfm