#include "stdio.h"
int main(int argc,char *argv[]){
int y,y0,m,m0,d,d0,w,mt[12]={31,28,31,30,31,30,31,31,30,31,30,31},s,i,t;
const char wt[][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
printf("Please enter y0-m0-d0 & w0(int)...\n");
if(scanf("%d-%d-%d%d",&y0,&m0,&d0,&w)!=4 || y0<0 || m0<1 || m0>12 || d0<1
|| (mt[1] = y0%4==0 && y0%100 || y0%400==0 ? 29 : 28,d0>mt[m0-1])
|| w<0 || w>6){//0表示星期天
printf("Input error, exit...\n");
return 0;
}
for(s=d0,t=m0-1,i=0;i<t;s+=mt[i++]);
printf("Please enter y-m-d(int)...\n");
if(scanf("%d-%d-%d",&y,&m,&d)!=3 || y<y0 || m<1 || m>12 || d<1
|| (mt[1] = y%4==0 && y%100 || y%400==0 ? 29 : 28,d>mt[m-1])
|| y==y0 && m<m0 || y==y0 && m==m0 && d<d0){
printf("Input error, exit...\n");
return 0;
}
for(s=d-s,t=m-1,i=0;i<t;s+=mt[i++]);
for(i=y0;i<y;s += 365+(i++%4==0 && i%100 || i%400==0));
printf("%d-%d-%d is %s.\n",y,m,d,wt[(s%7+w)%7]);
return 0;
}
代码格式和运行样例图片: