计算出任意二个时间之间的天数,不知道哪里出错了
程序代码:
#include<stdio.h> int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int ye2(int n,int x,int y) { int i,sum=0; if(x>=2) { if(n%4==0) { sum=sum+1; for(i=x-1;i>0;i++) { sum=sum+a[i]; } }else{ for(i=x-1;i>0;i--) { sum=sum+a[i]; } } sum=sum+y; } return sum; } int ye1(int n,int x,int y) { int i,sum; if(x<=2) { if(n%4==0) { sum+=1; for(i+1;i<13;i++) { sum+=a[i]; } }else{ for(i=x+1;i<13;i++) { sum+=a[i]; } } sum=sum+y; } return sum; } int nian(int x,int y) { int i,sum=0; for(i=x+1;i<y;i++) { if(i%4==0) { sum+=366; }else{ sum+=365; } } return sum; } int main() { int sum,n1,y1,r1,n2,y2,r2; printf("请输入第一个日期(xxxx-xx-xx):"); scanf("%d-%d-%d",&n1,&y1,&r1); printf("请输入第二个日期(xxxx-xx-xx):"); scanf("%d-%d-%d",&n2,&y2,&r2); if(n1=n2) { sum=ye1(n1,y1,r1)+ye2(n2,y2,r2); }else{ sum=nian(n1,n2)+ye1(n1,y1,r1)+ye2(n2,y2,r2); } printf("第一个日期到第二个日期一共%d天\n",sum); return 0; }