как получить слабые дни определенной недели для выбранного месяца и года в рельсах?

Я хочу получить все слабые дни определенной недели для выбранного года и месяца. Я получаю данные типа 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)


Поскольку вы используете рельсы, у вас есть методы активной поддержки для 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