已知,2000.1.1是周六
#include
#include
void main()
{int year,month,day,a,b=0,c,e,i,sum;
printf("year,month,day:");
scanf("%d,%d,%d",&year,&month,&day);
if(year=2000)
{if(month>1)b=b+31;
if(month>2)b=b+29;
if(month>3)b=b+31;
if(month>4)b=b+30;
if(month>5)b=b+31;
if(month>6)b=b+30;
if(month>7)b=b+31;
if(month>8)b=b+31;
if(month>9)b=b+30;
if(month>10)b=b+31;
if(month>11)b=b+30;
sum=b+day;
e=(sum+6)%7;}
if(year>2000)
{i=year-2000;
a=i*365+(i-1)/4-(i-1)/100+(i-1)/400+1;
if(month>1)b=b+31;
if(month>2)b=b+28+(year%4==0&&year%100!=0||year%400==0);
if(month>3)b=b+31;
if(month>4)b=b+30;
if(month>5)b=b+31;
if(month>6)b=b+30;
if(month>7)b=b+31;
if(month>8)b=b+31;
if(month>9)b=b+30;
if(month>10)b=b+31;
if(month>11)b=b+30;
sum=a+b+day;
e=(sum+6)%7;}
if(year1)b=b+31;
if(month>2)b=b+28+(year%4==0&&year%100!=0||year%400==0);
if(month>3)b=b+31;
if(month>4)b=b+30;
if(month>5)b=b+31;
if(month>6)b=b+30;
if(month>7)b=b+31;
if(month>8)b=b+31;
if(month>9)b=b+30;
if(month>10)b=b+31;
if(month>11)b=b+30;
sum=365+(year%4==0&&year%100!=0||year%400==0)-b-day+a+1;
c=sum%7;
if(c!=0)e=7-c;
else e=c;}
switch(e)
{case 0:printf("星期六\n");break;
case 1:printf("星期日\n");break;
case 2:printf("星期一\n");break;
case 3:printf("星期二\n");break;
case 4:printf("星期三\n");break;
case 5:printf("星期四\n");break;
case 6:printf("星期五\n");break;
}
}
|