#include "stdio.h"
#include "string.h"
#define ISYEAR(x) x%4==0&&x%100!=0||x%400==0?1:0
int dayofMonth[13][2]={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 monthName[13][20]={"","January","February","March","April","May","June","July","August",
"September","October","November","December"};
char weekName[7][20]={"Sunday","MOnday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int buf[3001][12][32];
struct Date
{
int Day;
int Month;
int Year;
void nextDay()
{
Day++;
if(Day>dayofMonth[Month][ISYEAR(Year)])
{
Day = 1;
Month++;
if(Month>12)
{
Month = 1;
Year++;
}
}
}
};
int main()
{
Date tmp;
int cnt = 0;
tmp.Day = 1;
tmp.Month = 1;
tmp.Year = 0;
while(tmp.Year != 3001)
{
buf[tmp.Year][tmp.Month][tmp.Day] = cnt;
tmp.nextDay();
cnt++;
}
int d,m,y;
char s[20];
while(scanf("%d%s%d",&d,s,&y) != EOF)
{
for(m=1;m<=12;++m)
{
if(strcmp(s,monthName[m])==0)//将输入字符串与月名比较得出月数
{
break;
}
}
int days = buf[y][m][d] - buf[2012][7][16];//计算给定日期与今日日期的天数间隔
days += 1;//2012.7.16位星期一,对应数组下标为1,
puts(weekName[(days%7+7)%7]);//将计算后得到的下标用7对其取模
}
return 0;
}
今天周几
最新推荐文章于 2024-09-17 22:37:48 发布