Trong C#, có một phương thức AddDays ([số ngày]) trong lớp DateTime.Có một add_days trong datetime ruby không?
Có loại phương pháp nào giống như thế này trong ruby không?
Trong C#, có một phương thức AddDays ([số ngày]) trong lớp DateTime.Có một add_days trong datetime ruby không?
Có loại phương pháp nào giống như thế này trong ruby không?
Lớp Date
cung cấp toán tử +
thực hiện điều đó.
>> d = Date.today
=> #<Date: 4910149/2,0,2299161>
>> d.to_s
=> "2009-08-31"
>> (d+3).to_s
=> "2009-09-03"
>>
Từ Date class:
+ (n)
Return một đối tượng Date mới đó là n ngày muộn hơn hiện tại.
n có thể là giá trị âm, trong trường hợp ngày mới sớm hơn giá trị hiện tại; tuy nhiên, # -() có thể trực quan hơn.
Nếu n không phải là chữ số, một TypeError sẽ được ném. Đặc biệt, không thể thêm hai Ngày vào nhau.
Trong Rails có những phương pháp rất hữu ích của Fixnum
lớp cho điều này (ở đây là n
Fixnum
Ví dụ:. 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
Đây là những thuận lợi cho việc Time
lớp quá.
PS: yêu cầu tích cực mở rộng Hỗ trợ Lõi sử dụng các bằng Ruby
require 'active_support/core_ext'
Những phương pháp đó là Rails-specific – Max
Date.new(2001,9,01).next_day(30) # 30 - numbers of day
# => #<Date: 2001-10-01 ...
Thêm một số giải thích với câu trả lời cho cách câu trả lời này giúp OP trong việc khắc phục vấn đề hiện tại –
Tôi nghĩ next_day
là dễ đọc hơn so phiên bản +
.
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.
sử dụng Rails ... Bạn có thể có một cái gì đó như thế này 't = Time.now; t + 3.days' – zfm