我有一个问题,是否有一个很好的简单解决方案来完成这项任务:
我有first_date = "2011-02-02"
和。last_date = "2013-01-20"
period = 90 (days)
我需要获取包含两个元素的数组,例如:
[first_date, first_date + period] ... [some_date, last_date]
.
我会用某种循环来完成它,但也许有一些很好的奇特方法可以做到这一点:D。
我有一个问题,是否有一个很好的简单解决方案来完成这项任务:
我有first_date = "2011-02-02"
和。last_date = "2013-01-20"
period = 90 (days)
我需要获取包含两个元素的数组,例如:
[first_date, first_date + period] ... [some_date, last_date]
.
我会用某种循环来完成它,但也许有一些很好的奇特方法可以做到这一点:D。
Date 有一个 step 方法:
require 'date'
first_date = Date.parse("2011-02-02")
last_date = Date.parse("2013-02-20")
period = 90
p first_date.step(last_date-period, period).map{|d| [d, d+period]}
#or
p first_date.step(last_date, period).map.each_cons(2).to_a
require 'pp'
require 'date'
first_date=Date.parse "2011-02-02"
last_date=Date.parse "2013-01-20"
period = 90
periods = []
current = first_date
last = current + period
while(last < last_date ) do
periods << [current, last]
current = last
last = current + period
end
if periods[-1][1] != last_date
periods << [periods[-1][1], last_date]
end
p periods
正如您的问题所暗示的那样,我假设最后一个时期必须结束,last_date
无论其长度如何。