2015-06-16 46 views
0

我想在特定的一週和所選的年份和月份中獲得所有疲軟的日子。我在控制器中獲得像year= 2015, month= 6 ,and weeknumber = 2的數據。如何在軌道中獲取這些特定數據的星期幾?如何在選定的月份和年份在軌道中獲得特定星期的弱日子?

我想要一個像這樣的方法,通過取週數來輸出星期幾。但是這個星期的數字應該是那個月的數字,因爲它應該小於或等於五。以下代碼輸出全年的週數。

require 'date' 

def week_dates(week_num) 
year = Time.now.year 
week_start = Date.commercial(year, week_num, 1) 
week_end = Date.commercial(year, week_num, 7) 
week_start.strftime("%m/%d/%y") + ' - ' +  week_end.strftime("%m/%d/%y") 
end 

puts week_dates(22) 
+0

可能的重複http://stackoverflow.com/questions/13075617/rails-3-2-8-how-do-i-get-the-week-number - 從護欄。你有沒有複習這個答案,並有後續問題?你能告訴我們你的代碼嗎? –

+0

@steveklein我認爲他的意思是六月的第二週是週數,而不是一年的週數。 –

+0

在這個網址,它是在一整年的週數爲44,但在我的情況下,弱數應該小於或等於5,因爲本週數屬於一個月。我想有一個方法,它採用上述三個參數,並給出像[1,2,3,4]這樣的數組格式的弱日期。 – John

回答

1

因爲你使用你的beginning_of_weekend_of_week積極支持方法記錄here軌道,你可以做到這一點

# first week in June 
d = Date.new(2015,6, 1) 
# => Mon, 01 Jun 2015 

# add a week to get the second week 
d += 1.week 
# => Mon, 08 Jun 2015 

(d.beginning_of_week..d.end_of_week).to_a 
#=> [Mon, 08 Jun 2015, Tue, 09 Jun 2015, Wed, 10 Jun 2015, Thu, 11 Jun 2015, Fri, 12 Jun 2015, Sat, 13 Jun 2015, Sun, 14 Jun 2015] 

如果你想你的那一週開始在星期天你可以做到這一點,通過本週的開始日期:

(d.beginning_of_week(:sunday)..d.end_of_week(:sunday)).to_a 
#=> [Sun, 31 May 2015, Mon, 01 Jun 2015, Tue, 02 Jun 2015, Wed, 03 Jun 2015, Thu, 04 Jun 2015, Fri, 05 Jun 2015, Sat, 06 Jun 2015] 
相關問題