Find day of the week for a given date


Write a function that calculates the day of the week for any particular date in the past or future. A typical application is to calculate the day of the week on which someone was born or some other special event occurred.

Following is a simple C function suggested by Sakamoto, Lachman, Keith and Craver to calculate day. The following function returns 0 for Sunday, 1 for Monday, etc.

/* A program to find day of a given date */

int dayofweek(int d, int m, int y)
    static int t[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };
    y -= m < 3;
    return ( y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;

/* Driver function to test above function */
int main()
    int day = dayofweek(30, 8, 2010);
    printf ("%d", day);

    return 0;

Output: 1 (Monday)

See this for explanation of the above function.


This article is compiled by Dheeraj Jain and reviewed by GeeksforGeeks team. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

GATE CS Corner    Company Wise Coding Practice

Recommended Posts:

4.8 Average Difficulty : 4.8/5.0
Based on 52 vote(s)

Writing code in comment? Please use, generate link and share the link here.