您的位置:首页 > 其它

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

2015-10-22 15:52 387 查看
//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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: