我希望有这样的东西:
例如:如果第一个日期是2012-02-01(YYYY-MM-DD),则下一个日期必须是2012-03-01。所以增加月份。
但是,如果日期是2012-12-01,则下一个日期必须是2013-01-01。我已设法做到nextMonth=((thisMonth) mod 12)+1
并将nextYear设为thisYear+1
thisMonth = 12
。
我的问题是:我可以使用日期库轻松完成吗?
答案 0 :(得分:3)
您可以使用Date#>>:
>> require 'date'
=> true
>> d = Date.new(2012,12,1)
=> #<Date: 2012-12-01 ((2456263j,0s,0n),+0s,2299161j)>
>> d >> 1
=> #<Date: 2013-01-01 ((2456294j,0s,0n),+0s,2299161j)>
>> (d..d>>1)
=> #<Date: 2012-12-01 ((2456263j,0s,0n),+0s,2299161j)>..#<Date: 2013-01-01 ((2456294j,0s,0n),+0s,2299161j)>
如果开始日期不是该月的第一天,但您仍需要将结束日期作为下个月的第一天,则可以执行以下操作:
>> d = Date.new(2012,12,12)
=> #<Date: 2012-12-12 ((2456274j,0s,0n),+0s,2299161j)>
>> (d>>1) - (d.mday - 1)
=> #<Date: 2013-01-01 ((2456294j,0s,0n),+0s,2299161j)>