2012-10-03 4 views

답변

0

적절한 날짜 라이브러리를 사용해야합니다. "Monday"에 대한 아이디어는 달력에 따라 다르며 일광 절약 시간으로 인해 변형 될 것입니다 (월요일에 특정 시간을 원한다고 가정). 시간대에 따라 다를 수 있습니다 (UNIX 타임 스탬프는 UTC를 기반으로해야 함) .

순진한 구현을 원한다면 알려진 월요일 (자정에 해당)에서 시간 소인을 빼고 86,400 (= 24 * 60 * 60)으로 정수 나누기를 할 수 있습니다. 결과 값이 0이면 월요일을 발견했습니다. 그러나 이것은 UTC 시간대 내에서만 유효하며 일광 절약 시간제로는 조정되지 않습니다.

0

파이썬에서,이 솔루션은 다음과 같을 것이다 :

def find_nearest_previous_monday(t): 
    r = (t - (t % WEEK)) - (3 * DAY) 
    if (t - r) >= WEEK: 
     r += WEEK 

    return r 

와 C에를 다음과 같이 :

time_t find_nearest_previous_monday(const time_t t) 
{ 
    time_t r; 

    r = (t - (t % WEEK)) - (3 * DAY) 
    if (t - r) >= WEEK { 
     r += WEEK; 
    } 

    return r; 
} 
관련 문제