AOJ 0125 Day Count
こんにちは川です。
今回は、まず最初に入力された西暦から次に入力された西暦までの日数を加算します。
次に余分な月を減算し、日にちをプラスしています。
コードが汚いですね。
#include<bits/stdc++.h>
using
namespace
std;
int
main()
{
int
year[2],month[2],day[2];
while
(cin>>year[0]>>month[0]>>day[0]>>year[1]>>month[1]>>day[1]){
bool
en=0;
for
(
int
i=0;i<2;i++)
if
(year[i]<0||month[i]<0||day[i]<0)en=1;
if
(en)
break
;
int
ans=0;
for
(
int
i=year[0];i<=year[1];i++){
ans+=365;
if
(i%4==0&&i%100!=0||i%400==0)ans+=1;
}
if
((year[0]%4==0&&year[0]%100!=0||year[0]%400==0)&&month[0]>=2)ans-=1;
if
((year[1]%4==0&&year[1]%100!=0||year[1]%400==0)&&month[1]<=2)ans+=1;
for
(
int
i=1;i<month[0];i++){
if
(i==2)ans-=28;
else
if
(i==4||i==6||i==9||i==11)ans-=30;
else
ans-=31;
}
for
(
int
i=month[1];i<13;i++){
if
(i==2)ans-=28;
else
if
(i==4||i==6||i==9||i==11)ans-=30;
else
ans-=31;
}
ans+=day[1]-day[0];
cout<<ans<<endl;
}
}