# 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.

## Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

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 */
#include<stdio.h>

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.

# GATE CS Corner    Company Wise Coding Practice

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