2016-06-15 19 views
0

私は、日付のユーザー入力に基づいて日付の配列を作成しようとしています。目標は、ユーザーが入力した日付を取得し、16の日付のペアを(順番に)生成することです。既存の配列からネストされた配列を作成する

私は開始日を生成して配列に入れる方法を考え出すことができましたが、その配列を取ってサブ配列(日付のペア)に分割する方法を理解できません。 。ここで

は、私は開始日を生成するために使用するコードです:

@date_pairs = (@[email protected]_date).step(7).to_a.reverse 

私は次のようにサブアレイを作成しようとしました:私は次のエラーを取得するしかし

@date_pairs = (@[email protected]_date).step(7).to_a.reverse.each { |x| Array.new(x, x-6)} 

:なし暗黙的に日付を整数に変換する

ここに私が得たいと思っているものの例があります:

@input_date = 6/15/2016 
@date_pairs = [[6/15/2016, 6/9/2016], [6/8/2016, 6/2/2016], [6/1/2016, 5/24/2016].....] 

目的は、サブ配列内の各値にアクセスして@date_pairsを反復処理できることです。

私は日付のペアの他のタイプを作成するには、この概念を使用する予定(すなわち、数ヶ月、数年で区切られた日付のペアなど)

ありがとう!

答えて

1

あなたの@input_dateがどのようなものか分からずに私が確信するのは難しいですが、あなたは本当に近いと思います。 xDateTimeのインスタンスで、6Integer)を減算しようとしているため、おそらくそのエラーが発生しています。そうかもしれないように、代わりに6.daysを引いてみてください。

@date_pairs = (@[email protected]_date).step(7).to_a.reverse.map { |x| [x, x-6.days] } 

Array.new(5, 6)[6, 6, 6, 6, 6]を生産することに注意してください - おそらくあなたはここで何をしたいです。

希望に役立ちます!

+0

完璧、ありがとう! –

関連する問題