2014-09-27 33 views
2

我想列出兩個日期之間的天數組。我可以用下面的代碼列出幾個月的數組。我可以如何改變這種情況以顯示兩個日期之間的每一天?列出兩天之間的天數列表

require 'date' 

date_from = Date.parse('2011-05-14') 
date_to = Date.parse('2011-05-30') 
date_range = date_from..date_to 

date_months = date_range.map {|d| Date.new(d.year, d.month, 1) }.uniq 
date_months.map {|d| d.strftime "%d/%m/%Y" } 

puts date_months 
+0

你沒有已經爲'date_range'?如果那不是你想要的,那麼你的問題就不清楚了。 – sawa 2014-09-27 06:19:15

回答

13

我不知道你指的是哪一天,因此我已經展示了所有的方法。

#wday是星期幾(0-6,星期日爲零)。

(date_from..date_to).map(&:wday) 

#mday是月份的一天(1-31)。

(date_from..date_to).map(&:mday) 

#yday是一年(1-366)的日子。

(date_from..date_to).map(&:yday) 

OP的實際需求對我來說並不是很清楚。我們之間的一些評論後,我從OP's comment知道,下面的答案OP正在尋找 -

(date_from..date_to).map(&:to_s) 
+0

確定這是一個很好的開始,那麼我將如何自動形成它的整個日期(即2014-05-06,2014-05-07,2014-05-08) – Brandon 2014-09-27 06:19:15

+0

我會只是得到日期的組件,然後把它們串起來? – Brandon 2014-09-27 06:19:48

+1

@Brandon沒有得到你.. – 2014-09-27 06:20:13