生命迹象:濒危。
发送信号:救援。
事件起因:
题目描述
在宴会中,小核桃发现他的两位好朋友小B和小C在争论着什么,作为宴会的组织者,小核桃认为他有责任调解宴会中的任何纷争,于是,小核桃过去询问了他们原因。了解到他们是在过来的路上发现了一副尘封的挂历,他们想知道这副挂历上的某个时间距离现在是多少天,但是两个人并没有算出一个统一的答案,于是他们为了说服对方开始了争论。
小核桃很头疼,但是他也想不出哪个答案是正确的,于是他将目光投向了擅长编程的你,希望你能帮帮他。
输入格式
输入共两行
第一行一个字符串,格式为xxxx-xx-xx代表日历中的时间。
第二行一个字符串,格式为xxxx-xx-xx代表宴会举办的时间。
输出格式
输出共一行
一个整数,代表日历中的时间距离宴会举办时间的天数,不包括日历中时间的当天。
输入数据 1
2016-01-01
2017-01-01
输出数据 1
366
数据范围
保证时间均为合法时间,且日历中的时间要早于宴会举办的时间。
时间差不超过1000年。
附录
闰年的判断方法
1.能被4整除,但不能被100整除
2.能被400整除
事情经过(需帮助的地方):
#include<bits/stdc++.h>
using namespace std;
long long n1,n2,y_1,y2,r1,r2,sum;
int c[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
string a,b;
int main(){
cin>>a>>b;
for(int i=0;i<=3;i++){
n1=n1*10+a[i]-'0';
n2=n2*10+b[i]-'0';
}
for(int i=5;i<=6;i++){
y_1=y_1*10+a[i]-'0';
y2=y2*10+b[i]-'0';
}
for(int i=8;i<=9;i++){
r1=r1*10+a[i]-'0';
r2=r2*10+b[i]-'0';
}
for(int i=n1+1;i<=n2;i++){
if((i%4==0&&i%100!=0)||i%400==0)
sum+=366;
else
sum+=365;
}
if(n1==n2){
for(int i=y_1;i<=y2;i++){
if(((n1%4==0&&n1%100!=0)||n1%400==0)&&i!=y2&&i==2)
sum++;
if(y_1==y2){
sum+=r2-r1+1;
break;
}
else if(i==y_1){
sum+=c[i]-r1+1;
continue;
}
else if(i==y2){
sum+=r2-1;
continue;
}
sum+=a[i];
}
}else{
if(y_1==y2)
sum+=r2-r1+1;
else{
for(int i=y_1;i<=12;i++){
sum+=c[i];
if(((n1%4==0&&n1%100!=0)||n1%400==0)&&i==2)
sum++;
}
for(int i=1;i<y2;i++) {
sum+=c[i];
if(((n1%4==0&&n1%100!=0)||n1%400==0)&&i==2)
sum++;
}
sum=sum-r1+1;
sum+=r2-1;
}
}
cout<<sum;
return 0;
}
提示:请及时救援