2012-09-25 3 views
2

Ruby를 사용하면 오는 일요일이 그 달의 첫 번째, 두 번째 또는 세 번째 일요일인지 어떻게 결정할 수 있습니까?Ruby에서 어느 일요일 결정

+0

time.day/6. 귀하의 주 + 1이 될 부분을 생략하십시오. –

답변

2

@ElYusubov - 가깝지만 올바르지 않습니다.

출발점은 7 일 (일주일 일 수)이어야합니다. 그러나 time.day는 1 일부터 31 일까지의 일을 제공하므로 먼저 나누기 전에 하나를 뺀 다음 하나를 더해야합니다. 매월 첫 8 일

Day number (Day# - 1)/7 Week# 
---------- -------------- ----- 
     1  0.0    1 
     2  0.14   1 
     3  0.29   1 
     4  0.43   1 
     5  0.57   1 
     6  0.71   1 
     7  0.86   1 
     8  1    2 
일 - 중 - 주 time.day주는, 그 주에 번호가 그의 첫 번째, 두 번째 등의 여부를 나타냅니다 어느

일-의-the- ... 제공 주. 그러나 일요일이 되길 원합니다.

wday는 평일을 나타냅니다. 0에서 6까지, 0은 일요일을 의미합니다. 다가오는 일요일에는 며칠입니까? 글쎄, 그건 "오는"의 당신의 정의에 따라 다르지만 오늘을 제외하면 당신은 "오는"일요일 오늘 할 수있는 경우 == 일요일, 당신은 기본적으로 당신에게 다음, 7

Weekday today  Days until next Sunday 
-------------  ---------------------- 
0 (Sun)   7 
1 (Mon)   6 
2 (Tue)   5 
3 (Wed)   4 
4 (Thu)   3 
5 (Fri)   2 
6 (Sat)   1 

에서 오늘날의 평일을 빼기 똑같은 일을하고 일곱을 제로로 바꿉니다. 조건부 검사를 수행하거나 모듈러스/나머지 연산자를 사용할 수 있습니다.

어쨌든 다음 일요일이 몇 일 전인지 알게되면 그 날짜 값을 계산할 수 있습니다 (그 날짜를 오늘 날짜에 추가). 그런 다음 오늘 대신에 해당 날짜의 해당 월의 주 번호를 결정할 수 있습니다 첫 번째 방법 (1 빼기, 7 나누기, 1 덧셈).

관련 어휘 ...

Date.wday  0 to 6 (0 = sunday) 
Date.day   1 to 31 

내가 루비를 모르기 때문에 코드를 제공하기 위해 시도하지 않습니다.