c++
问题描述
诗人H年少的时候就离开了故乡,等白发苍苍时才返回。有诗为证:“少小离家老大回,乡音无改鬓毛衰。儿童相见不相识,笑问客从何处来?”假定诗人H离开故乡的日子为公元A年B月C日,返回的日子为公元X年Y月Z日。求诗人H离开故乡的总天数。
输入
输入为2个日期(年月日,且分别以空格隔开),都是公元后的有效值。第一行:离开故乡的日期第二行:返回故乡的日期
输出
离开故乡的天数(包括离开当天和返回当天)。离开故乡的天数(包括离开当天和返回当天)。
#include
using namespace std;
int main()
{
int rn[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int n[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y1,m1,d1;
int y2,m2,d2;
//ys为两年期间差距,ms1,ms分别为离开那年与回来那年那月1号之前天数,ds为总天数。
int ys=0,ms=0,ms2=0,ds=0;
cin>>y1>>m1>>d1;
cin>>y2>>m2>>d2;
for(int i=y1;i<y2;i++)
{
if(i%4==0&&i%100!=0||i%400==0)
ys+=366;
else
ys+=365;
}
for(int i=1;i<m2;i++)
{if(i%4==0&&i%100!=0||i%400==0)
ms+=rn[i];
else
ms+=n[i];
}
for(int i=1;i<m1;i++)
{if(i%4==0&&i%100!=0||i%400==0)
ms2+=rn[i];
else
ms2+=n[i];
}
ds=ys+ms+d2-ms2-d1+1;
cout<<ds;
return 0;
}
-