0

このタスクにはおそらく素晴らしい簡単な解決策があるのではないかと疑問があります。

と がfirst_date = "2011-02-02"ありlast_date = "2013-01-20"ますperiod = 90 (days)

たとえば、2 つの要素を持つ配列を取得する必要があります
[first_date, first_date + period] ... [some_date, last_date]

ある種のループで作成しますが、これを行うための素敵な方法があるかもしれません:D.

4

2 に答える 2

1

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
于 2013-02-26T10:18:57.500 に答える
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はその長さに関係なく終了する必要があると想定しています。

于 2013-02-26T10:14:37.657 に答える