九度考研真题 2008-上交1043:Day of Week 日期

来源:互联网 发布:应力张量不变量 知乎 编辑:程序博客网 时间:2024/05/29 07:05
//1043:Day of Week 
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
#define ISYEAR(x) (x%100!=0&&x%4==0||x%400==0)?1:0
int dayOfmonth[13][2]={0,0,31,31,28,29,31,31,30,30,31,31,30,30,31,31,31,31,30,30,31,31,30,30,31,31};
char month[13][20]={"","January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
char week[8][14]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; 
struct Date{
int Year;
int Month;
int Day;
void nextday(){
Day++;
if(Day>dayOfmonth[Month][ISYEAR(Year)]){
Month++;Day=1;
if(Month>12){
    Year++;Month=1;
   }
}

}
};
int buf[3001][13][32];
int main()
{
Date tmp;
tmp.Year=0;
tmp.Month=1;
tmp.Day=1;
int cnt=0;
while(tmp.Year!=3001){
buf[tmp.Year][tmp.Month][tmp.Day]=cnt;
tmp.nextday();
cnt++;
}
int y1,d1;char m1[15];
int m11;
while(scanf("%d%s%d",&d1,m1,&y1)!=EOF){
for(int i=1;i<13;i++){
if(strcmp(m1,month[i])==0)  {
m11=i;break;
}
}
int t=buf[y1][m11][d1]-buf[2015][5][17];
cout<<week[(t%7+7)%7]<<endl;
}
}
0 0