C语言计算日期的题,谁能帮我!

2025-04-25 11:08:41
推荐回答(1个)
回答1:

有点长,但是这样比较好理解

如下:

#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;
}