我有疑问是否可能有一个很好的简单解决方案来完成这项任务:
我有first_date = "2011-02-02"
,last_date = "2013-01-20"
和period = 90 (days)
。
我需要获得带有两个元素的数组,例如:
[first_date, first_date + period] ... [some_date, last_date]
。
我会用某种循环制作它但也许有一些很好的方式来做到这一点:D。
答案 0 :(得分:1)
日期有一个步骤方法:
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
答案 1 :(得分:0)
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
结束,无论其长度如何,正如您的问题所暗示的那样。