算时间差都转化成秒 算天数肯定都转化成天来算啊
#include<bits/stdc++.h>
using namespace std;
int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int isleap(int year)
{
return (year%4==0&&year%100!=0)||year%400==0;
}
int getday(int year,int month)
{
if(month==2) return months[month]+isleap(year);
else return months[month];
}
long long calc(int year,int month,int day)
{
long long res=0;
for(int i=1;i<year;i++)
{
res+=365+isleap(i);
}
for(int i=1;i<month;i++)//千万别写成<=了
{
res+=getday(year,i);
}
return res+day;
}
int main()
{
int y1,m1,d1,y2,m2,d2;
while(~scanf("%04d%02d%02d\n%04d%02d%02d",&y1,&m1,&d1,&y2,&m2,&d2))//~-1表示为0 还要记得scanf的%04d占位符及\n换行符
{
cout<<abs(calc(y2,m2,d2)-calc(y1,m1,d1))+1<<endl;//记得加abs 记得+1!!!
}
return 0;
}