как да получа слаби дни от определена седмица за избран месец и година в релси?

Искам да получа всички слаби дни от определена седмица, за избраната година и месец. Получавам данни като 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)

person John    schedule 16.06.2015    source източник
comment
Възможен дубликат на stackoverflow.com/questions/13075617/. Прегледахте ли този отговор и имате ли последващи въпроси? Можете ли да ни покажете вашия код?   -  person steve klein    schedule 16.06.2015
comment
@steveklein Мисля, че има предвид втората седмица на юни като номер на седмицата, а не номерът на седмицата в годината.   -  person j-dexx    schedule 16.06.2015
comment
в този url той взема номер на седмица в цяла година като 44, но в моя случай слабото число трябва да е по-малко или равно на 5. тъй като този номер на седмицата принадлежи на месец. искам да имам метод, който взема горните три параметъра и дава слабите дати във формат на масив като [1,2,3,4]   -  person John    schedule 16.06.2015


Отговори (1)


Тъй като използвате rails, имате методите за активна поддръжка за beginning_of_week и end_of_week, документирани тук можете да направите това

# 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]
person j-dexx    schedule 16.06.2015