有点长,但是这样比较好理解
如下:
#include
int loopyear(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
}
int main()
{
int y,m,d,dis=0,i;
int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d.%d.%d",&y,&m,&d);
if(m>6||(m==6&&d>=6)){ //下一年6.6
for(i=m-1;i<12;i++){
dis+=mon[i];
}
dis-=d;
if(m<2)dis+=loopyear(y);
dis+=loopyear(y+1);
dis+=mon[0]+mon[1]+mon[2]+mon[3]+mon[4]+mon[5]+6;
}
else{//今年6.6前
for(i=m-1;i<5;i++){
dis+=mon[i];
}
dis=dis-d+6;
if(m<=2)dis+=loopyear(y);//从根源治理:31日
}
printf("%d days.\n",dis);
return 0;
}