2016-06-15 30 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的一個實例,您正試圖從中減去6(一個Integer)。也許嘗試減去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

完美,謝謝! –