计算日期差

193 阅读1分钟

小宗想知道两个日期之间所间隔的天数,他希望有一个日期计算器,输入两个日期后能够自动计算之间的天数。要求:设计相应的函数完成天数的计算,在主函数中验证正确性。

注意 1、两个日期之间的天数差,要分别求一个日期距离0年0月0日之间的天数,再求出两个天数差的绝对值。 2、在求日期差时,注意闰年的问题,比如2022年XX月XX日,求0年到2022年间共有多少闰年。 #include #include using namespace std; int g(int x) { if((x%4==0&&x%100!=0)||(x%400==0)) return 1; else return 0; } int f(int year,int month,int date) { int day1=0,day2=0,run=0,day=0; for(int i=0;i<year;i++) { if(g(i)) run++; } day1=365*year+run; int m[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(g(year)) m[2]+=1; for(int i=1;i<month;i++) { day2+=m[i]; } day=day1+day2+date; return day;

} int main() { int a,b,c,d,e,k; cin>>a>>b>>c; cin>>d>>e>>k; cout<<fabs(f(a,b,c)-f(d,e,k)); return 0;

}