输入: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;
}