18岁生日
Problem Description
Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。
Input
一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
Output
T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
Sample Input
1
1988-03-07
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 using namespace std; 5 int fun(int y) 6 { 7 if(((y%100!=0)&&(y%4==0))||(y%400==0)) 8 return 1; 9 return 0; 10 } 11 int main() 12 { 13 int T; 14 cin>>T; 15 while(T--) 16 { 17 int y,m,d; 18 int sum=0; 19 scanf("%d%*c%d%*c%d",&y,&m,&d); 20 if(m==2&&d==29) 21 { 22 cout<<"-1"<<endl; 23 continue; 24 } 25 if(m>2) 26 { 27 for(int i=1;i<=18;i++) 28 { 29 if(fun(y+i)==1) 30 sum+=366; 31 else 32 sum+=365; 33 } 34 cout<<sum<<endl; 35 continue; 36 } 37 if(m<=2) 38 { 39 for(int i=0;i<18;i++) 40 { 41 if(fun(y+i)==1) 42 sum+=366; 43 else 44 sum+=365; 45 } 46 cout<<sum<<endl; 47 continue; 48 } 49 } 50 }
Sample Output
6574