输入n组日期(保证后一天日期晚于前一天),输出两日期间的天数。
输入样例:
2
2019 1 1 2019 1 2
2016 1 1 2016 3 1
输出样例:
2
61
#include <iostream>
using namespace std;
int main()
{
int n; //n组日期
int y1, m1, d1, y2, m2, d2; //年月日
int days=0; //计算天数
int day[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //每月的天数
cin >> n;
while(n--)
{
cin >> y1 >> m1 >> d1 >> y2 >> m2 >> d2;
if(y1!=y2 || m1>m2) //要求同一年且后一天晚于前一天
return;
if(m1==m2 && d1>d2) //月份相同时前一天日期晚于后一天
return;
if(y1%4==0) //判断是否为闰年
{
day[1] = 29;
}
if(m1 == m2)
{
cout << d2 - d1 + 1 << endl;
}
else
{
for(int i=m1;i<m2;i++)
{
days += day[i];
}
cout << days - d1 + d2 + 1 << endl;
}
day[1] = 28; //恢复2月的天数
}
return 0;
}