题意:输出日期对应的星期
#include<iostream>
#include<string>
using namespace std;
int getDate(int y,int m,int d){
if(m==1||m==2){
m+=12;
y--;
}
//注意写成()+1,如果不加大括号会错
return ((d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7)+1;//注意加1,否则返回0对应星期一,以此类推
}
int main(){
int y,d;
string m;
string M[13]={"","January","February","March","April","May","June","July","August","September","October","November","December"};
string W[8]{"","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
while(cin>>d>>m>>y){
for(int i=1;i<13;i++){
if(M[i]==m){
cout<<W[getDate(y,i,d)]<<endl;
break;
}
}
}
return 0;
}