计算日期c++
问题:小宗想知道两个日期之间所间隔的天数,他希望有一个日期计算器,输入两个日期后能够自动计算之间的天数。
1、要单独定义一个函数完成天数的计算!!!!!!
2、两个日期之间的天数差,要分别求一个日期距离0年0月0日之间的天数,再求出两个天数差的绝对值。
3、在求日期差时,注意闰年的问题,比如2022年XX月XX日,求0年到2022年间共有多少闰年。
代码如下
#include<iostream>
#include<cmath>
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;
}