根据年月日计算星期几

时间:2022-03-13 09:47:38
根据年月日计算星期几,例如:

输入:1990 1 1  输出 monday

输入:2013 9 17 输出 tuesday

基姆.拉尔森 给出公式:

W=(d+1+2*m+3*(m+1)/5+y+(y>>2)-y/100+y/400)%7;

代码:

#include<iostream>
#include<cstdio>
using namespace std;
char *week[]={"sunday","monday","tuesday","wednesday","thursday","friday","saturday"};

void search(int y,int m,int d)
{
if(m<3)
{
m+=12;
--y;
}
int W=(d+1+2*m+3*(m+1)/5+y+(y>>2)-y/100+y/400)%7;
cout<<week[W]<<endl;
}

int main()
{
int y,m,d;
while(~scanf("%d %d %d",&y,&m,&d))
search(y,m,d);
return 0;
}