#include <stdio.h>
#include <stdlib.h>
int daynumber(int year,int mon,int day)//返回日期在当年是第几天
{
int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,total=0;
for(i=0; i<mon-1; i++)
{
total+=a[i];
}
if(mon>2) //算闰年不能放到for里面
{
total+=(year%4==0&&year%100!=0 || year%400==0);
}
total+=day;
//printf("%04d-%02d-%02d is %dth days\n",year,mon,day,total);
return total;
}
int yearnumber(int year1,int year2)
{
int total=0,year;
for(year=year1; year<year2; year++)
{
total+=365+(year%4==0&&year%100!=0 || year%400==0);
}
return total;
}
int main()
{
int year1,mon1,day1,year2,mon2,day2;
int dist;
printf("请输入起始日期 年月日之间用空格隔开\n例如:2019 01 01 2020 12 31\n");
while(fflush(stdin),//默认year1<year2
scanf("%d%d%d%d%d%d",&year1,&mon1,&day1,&year2,&mon2,&day2)!=EOF)
{
if(year1==year2)
{
dist=daynumber(year2,mon2,day2)-daynumber(year1,mon1,day1);
}else{
dist=
daynumber(year2,mon2,day2)
+yearnumber(year1,year2)
-daynumber(year1,mon1,day1);
}
printf("%04d-%02d-%02d和%04d-%02d-%02d相差%d天\n",
year1,mon1,day1,year2,mon2,day2,
dist);
}
system("pause");
}
C语言-计算日期间隔
最新推荐文章于 2024-03-14 18:38:34 发布