# 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 function suggested by Sakamoto, Lachman, Keith and Craver to calculate day. The following function returns 0 for Sunday, 1 for Monday, etc.

## C++

/* A program to find day of a given date */
#include
using namespace std;

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 Code int main() { int day = dayofweek(30, 8, 2010); cout << day; return 0; } // This is code is contributed // by rathbhupendra [tabby title = "C"]

 `/* A program to find day of a given date */` `#include ` ` `  `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; ` `} `

## Java

 `// A program to find day of a given date  ` ` `  `class` `GFG ` `{ ` `static` `int` `dayofweek(``int` `d, ``int` `m, ``int` `y) ` `{ ` `    ``int` `t[] = { ``0``, ``3``, ``2``, ``5``, ``0``, ``3``, ``5``, ``1``, ``4``, ``6``, ``2``, ``4` `}; ` `    ``y -= (m < ``3``) ? ``1` `: ``0``; ` `    ``return` `( y + y/``4` `- y/``100` `+ y/``400` `+ t[m-``1``] + d) % ``7``; ` `} ` ` `  `// Driver Program to test above function ` `public` `static` `void` `main(String arg[]) ` `{ ` `    ``int` `day = dayofweek(``30``, ``8``, ``2010``); ` `    ``System.out.print(day); ` `} ` `} ` ` `  `// This code is contributed ` `// by Anant Agarwal. `

/div>

## Python3

 `# Python3 program to find day ` `# of a given date ` ` `  `def` `dayofweek(d, m, y): ` `    ``t ``=` `[ ``0``, ``3``, ``2``, ``5``, ``0``, ``3``, ` `          ``5``, ``1``, ``4``, ``6``, ``2``, ``4` `] ` `    ``y ``-``=` `m < ``3` `    ``return` `(( y ``+` `int``(y ``/` `4``) ``-` `int``(y ``/` `100``) ` `             ``+` `int``(y ``/` `400``) ``+` `t[m ``-` `1``] ``+` `d) ``%` `7``) ` ` `  `# Driver Code ` `day ``=` `dayofweek(``30``, ``8``, ``2010``) ` `print``(day) ` ` `  `# This code is contributed by Shreyanshi Arun. `

## C#

 `// C# program to find day of a given date  ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``static` `int` `dayofweek(``int` `d, ``int` `m, ``int` `y) ` `    ``{ ` `        ``int` `[]t = { 0, 3, 2, 5, 0, 3, 5,  ` `                            ``1, 4, 6, 2, 4 }; ` `        ``y -= (m < 3) ? 1 : 0; ` `         `  `        ``return` `( y + y/4 - y/100 + y/400  ` `                         ``+ t[m-1] + d) % 7; ` `    ``} ` `     `  `    ``// Driver Program to test above function ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `day = dayofweek(30, 8, 2010); ` `         `  `        ``Console.Write(day);  ` `    ``} ` `} ` ` `  `// This code is contributed by Sam007. `

## PHP

 ` `

Output : 1 (Monday)

See this for explanation of the above function.