2013-10-29 2 views
1

이것은 스택에 대한 나의 첫 번째 질문입니다.레일에서의 주 번호 계산

저는 숙박 시설을 검색하고 찾는 데 많은 시간을 할애하는 예약 사이트에서 일하고 있습니다. 대부분의 사용자 검색은 해당 연도의 주 번호에 있습니다 (예 : 7 월 첫째 주에 27 주.

사용자가 숙박 시설을 검색 할 때 1 년을 기입 할 필요가 없으므로 사용자에게서 얻을 수있는 유일한 것은 주 번호입니다.

사용자가 주간에 다음 주에 해당하는 숫자가 있어야한다는 것을 고려하여 주를 어떻게 얻을 수 있습니까? .

(이에 잡았다가있다 I는 다음과 같이 수행하여 다가오는 주에 27 얻을 수 :

def week 
    week = 27 
    Date.commercial(Date.current.year + 1, week, 1) # gives the first day of the week 
end 

을하지만 월 1, 그 이후에보고 될 때까지는 잘 될 것)

+0

안녕하세요! 답이 아니지만 관련성이 있습니다 : 폼에서'week_field' [참고] (http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-week_field)와'week_field_tag '멋진 입력을위한 도우미. 그냥 그들에 대해 배웠습니다. 어쩌면 검색 도우미와 같은 도우미가 있으면 "27"을 일주일로 변환 할 필요가 없습니다. –

+0

또 다른 메모는 제가 일주일에 한 번 피커 도우미를 발견했습니다 : [week-picker] (https://github.com/morshedalam/week-picker)와 [kalendae] (https://github.com/ChiperSoft/Kalendae). –

답변

1

현재 주간을 Date.current.cweek(Reference)과 비교할 수 있습니다.

require 'active_support/core_ext' # Already included in Rails 

def calendar_week(week) 
    now = Date.current 
    year = now.cweek < week ? now.year : now.year + 1 
    Date.commercial(year, week, 1) 
end 

p calendar_week(49) 
# => Mon, 02 Dec 2013 

p calendar_week(1) 
# => Mon, 30 Dec 2013 # don't know if that's the way calendar weeks are counted 

p calendar_week(27) 
# => Mon, 30 Jun 2014 
+0

토마스, 내가 찾고 있었던 것을 고마워한다. week fields에도 팁을 달았습니다. – swelet