#include <cstdlib>
#include <iostream>
using namespace std;
int months[]={31,28,31,30,31,30,31,31,30,31,30,31};
int IsLeap( int year)
{
if((year%4==0&&year%100!=0)||(year%100==0&&year%400==0))
{
return 1;//闰年
}
else
return 0;//平年
}
void Print(int weekday)
{
switch(weekday){
case 0: printf("星期日");break;
case 1: printf("星期一");break;
case 2: printf("星期二");break;
case 3: printf("星期三");break;
case 4: printf("星期四");break;
case 5: printf("星期五");break;
case 6: printf("星期六");break;
default: printf("error");
}
}
int GetDays(int year , int month ,int day)//得到输入的年月日月 与 1年1月1日 相隔的天数 (不计算第一天)
{
int days=0;
int i,j,k;
for(i=1;i<year;i++){
if(IsLeap(i))days=days+366;else days=days+365;
}
for(j=1;j<month;j++){
if(j==2&&IsLeap(year)) days=days+29;
else days=days+months[j-1];
}
for(k=1;k<day;k++){
days++;
}
return days;
}
int main(int argc, char *argv[])
{
int year,month,day;
printf("输入你要查询的年月日,用,分隔\n");
int result=scanf("%d,%d,%d",&year,&month,&day);
if(result!=3){
printf("输入错误");
system("PAUSE");
}
if((year<0)||(month<1) || (month>12) || (day<1) || (day >31)){
printf("输入错误");
system("PAUSE");
}
int days=GetDays(year , month ,day);
int weekday=(1+days)%7;
Print(weekday);
system("PAUSE");
return EXIT_SUCCESS;
}