2013-05-21 2 views
0

날짜까지 일주일이나 달에 날짜를 찾는 방법.일주일이나 한 달 안에 날짜를 찾는 방법

days_for_week should return 19,20,21 (assuming current date is 21st) 
days_for_month should return 1..21 (assuming current date is 21st) 
+0

사용중인 레일을 할 수 있습니까? –

답변

0

적극적인 지원은 at_beginning_of_week, at_end_of_week, at_beginning_of_month 등과 같은 유용한 메소드를 많이 제공합니다.

> Date.today.at_beginning_of_week 
=> Mon, 20 May 2013 

이 특별한 경우를 들어,

> (Date.today.at_beginning_of_week..Date.today).map &:day 
=> [20, 21] 

마찬가지로

> (Date.today.at_beginning_of_month..Date.today).map &:day 
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21] 

하거나

> 1..Date.today.day 
1

첫 번째의 경우는, 현재 요일 얻을 Time.now.wday를 사용할 수 마이너스 그건 당신이 일주일의 시작의 날짜를 제공 할 것입니다.

두 번째로는 훨씬 간단합니다. 매달 1st으로 시작합니다. 맞습니까? 두 번째는 간단하다

1

내가 제대로 질문을 읽고 있어요 가정은 ... :

def days_for_month 
    1..Date.today.day 
end 

첫 번째 토요일에 다시 일을 조금 알고리즘이 필요합니다

def days_for_week 
    days = [] 
    day = Date.today 
    until day.saturday? 
    days.unshift(day.day) 
    day -= 1 
    end 
    days 
end 
관련 문제