본문 바로가기
MISC.

날짜로부터 요일 계산하기

by irmus 2014. 7. 18.

날짜(년월일)가 있을때 그날이 무슨 요일인지 계산하는 방법은 여러가지가 있습니다.

엄청 간단하고 코딩에 적용하기 좋은 공식 하나 정리합니다.

인터넷에 떠도는 알고리즘 설명 주워다 대충 손봐서 만든거다보니 누가 만든 공식인지도 모르고, 년도에 상관없이 정확한지 확신은 없습니다만, 일단 2014년 7월달은 맞군요 ^^;

/*
    Calculate weekday.
    
    Input: date. eg. 2014-July-17
        year = 2014
        month = 7
        day = 17
    
    return :
        0 : Monday
        1 : Tuesday
        2 : Wednesday
        3 : Thursday
        4 : Friday
        5 : Saturday
        6 : Sunday
*/
int weekday(int year, int month, int day)
{
    int year_1 = year / 100;
    int year_2 = year - year_1 * 100;
    
    return (day + (month + 1) * 26 / 10 + year_2 + (year_2 / 4) + (year_1 / 4) - 2 * year_1 - 2) % 7;
}


MS Visual Studio 2013 express에서 작성한 예제 솔루션도 첨부합니다.

WeekdayCalculator01.zip