#include<stdio.h>
#include<iostream>
using namespace std;
int month[13][2]={
{0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},
{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}
};
//判断这年是否为闰年,返回1为闰年
bool isLeap(int year)
{
if(year%100!=0&&year%4==0)
return true;
if(year%400==0)
return true;
return false;
}
//计算日期相差天数
int getDays(int time1,int time2)
{
int y1,m1,d1;
int y2,m2,d2;
m1=(time1%10000)/100;m2=(time2%10000)/100;
d1=time1%100;d2=time2%100;
while(y1!=y2||m1!=m2||d1!=d2)
{
int y=(int)isLeap(y1);
int n=month[m1][y];
if(d1<n)
{
d1++;
}else
{
d1=1;
if(m1<12)
{
m1++;
}else
{
m1=1;
y1++;
}
}
days++;
}
return days;
}
int main()
{
int time1,time2;
scanf("%d%d",&time1,&time2);
int days=0;
if(time1<time2)
{
days=getDays(time1,time2);
}else if(time2<time1)
{
days=getDays(time2,time1);
}
printf("%d",days);
return 0;
#include<iostream>
using namespace std;
int month[13][2]={
{0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},
{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}
};
//判断这年是否为闰年,返回1为闰年
bool isLeap(int year)
{
if(year%100!=0&&year%4==0)
return true;
if(year%400==0)
return true;
return false;
}
//计算日期相差天数
int getDays(int time1,int time2)
{
int y1,m1,d1;
int y2,m2,d2;
int days=0;
//将日期拆分为年月日
y1=time1/10000;y2=time2/10000;m1=(time1%10000)/100;m2=(time2%10000)/100;
d1=time1%100;d2=time2%100;
while(y1!=y2||m1!=m2||d1!=d2)
{
int y=(int)isLeap(y1);
int n=month[m1][y];
if(d1<n)
{
d1++;
}else
{
d1=1;
if(m1<12)
{
m1++;
}else
{
m1=1;
y1++;
}
}
days++;
}
return days;
}
int main()
{
int time1,time2;
scanf("%d%d",&time1,&time2);
int days=0;
if(time1<time2)
{
days=getDays(time1,time2);
}else if(time2<time1)
{
days=getDays(time2,time1);
}
printf("%d",days);
return 0;
}
输入格式:
20080103
20090201
输出格式:
395