#include<stdio.h> //给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非
int main() //法的日期要给出错误提示信息,合法的日期要再计算是星期几。
{
int year,month,day,n,s=0,day1;
scanf("%d %d %d",&year,&month,&day);
if(year>=1900)
{
for(n=1900;n<=year;n++)
{
if((n%4==0&&n%100!=0)||n%400==0)
s=s+366;
else
s=s+365;
}
switch(month-1)
{
case 1:s=s+31;break;
case 2:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31;break;}
else
{ s=s+28+31;break;}
case 3:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31;break;}
else
{ s=s+28+31+31;break;}
case 4:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30;break;}
else
{ s=s+28+31+31+30;break;}
case 5:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31;break;}
else
{ s=s+28+31+31+30+31;break;}
case 6:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30;break;}
else
{ s=s+28+31+31+30+31+30;break;}
case 7:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31;break;}
else
{ s=s+28+31+31+30+31+30+31;break;}
case 8:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31+31;break;}
else
{ s=s+28+31+31+30+31+30+31+31;break;}
case 9:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31+31+30;break;}
else
{ s=s+28+31+31+30+31+30+31+31+30;break;}
case 10:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31+31+30+31;break;}
else
{ s=s+28+31+31+30+31+30+31+31+30+31;break;}
case 11:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31+31+30+31+30;break;}
else
{ s=s+28+31+31+30+31+30+31+31+30+31+30;break;}
}
s=s+day;
day1=s%7-1;
printf("%d年%d月%d是星期%d\n",year,month,day,day1);
}
else
printf("defalut\n");
return 0;
}
int main() //法的日期要给出错误提示信息,合法的日期要再计算是星期几。
{
int year,month,day,n,s=0,day1;
scanf("%d %d %d",&year,&month,&day);
if(year>=1900)
{
for(n=1900;n<=year;n++)
{
if((n%4==0&&n%100!=0)||n%400==0)
s=s+366;
else
s=s+365;
}
switch(month-1)
{
case 1:s=s+31;break;
case 2:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31;break;}
else
{ s=s+28+31;break;}
case 3:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31;break;}
else
{ s=s+28+31+31;break;}
case 4:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30;break;}
else
{ s=s+28+31+31+30;break;}
case 5:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31;break;}
else
{ s=s+28+31+31+30+31;break;}
case 6:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30;break;}
else
{ s=s+28+31+31+30+31+30;break;}
case 7:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31;break;}
else
{ s=s+28+31+31+30+31+30+31;break;}
case 8:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31+31;break;}
else
{ s=s+28+31+31+30+31+30+31+31;break;}
case 9:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31+31+30;break;}
else
{ s=s+28+31+31+30+31+30+31+31+30;break;}
case 10:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31+31+30+31;break;}
else
{ s=s+28+31+31+30+31+30+31+31+30+31;break;}
case 11:if((n%4==0&&n%100!=0)||n%400==0)
{
s=s+29+31+31+30+31+30+31+31+30+31+30;break;}
else
{ s=s+28+31+31+30+31+30+31+31+30+31+30;break;}
}
s=s+day;
day1=s%7-1;
printf("%d年%d月%d是星期%d\n",year,month,day,day1);
}
else
printf("defalut\n");
return 0;
}