18岁生日

来源:互联网 发布:动漫技法书淘宝网 编辑:程序博客网 时间:2024/05/06 13:32
B - 18岁生日
Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u
Submit Status

Description

当你还是18岁的时候,那个曾经一起追过的女孩刚好也是18岁,而且她的生日就要到了,你突然想到一个问题,是不是每个人到18岁生日所经过的天数都是一样的呢?我们来算一下吧

Input

首先输入一个整数n,表示有n组数据,格式是YYYY-MM-DD。

Output

对于每组数据输出一行,每行一个数,表示从出生到18岁生日所经过的天数。如果没有18岁生日,就输出-1。

Sample Input

 

2
1992-2-1
1988-3-5

Sample Output

 

6575
6574

#include<cstdio>int main(){int t; scanf("%d",&t);int y,m,d;while(t--){int day=0;scanf("%d-%d-%d",&y,&m,&d);if(m==2&&d==29&&(y+18)%400!=0){printf("-1\n");}//判断是否有生日else{if(( ( y%4==0&&y%100!=0 ) || (y%400==0) )&& m<3 ){day+=366;}else if( ( (y+18)%4==0 && (y+18)%100!=0 || (y+18)%400==0) &&m>2)day+=366;else day+=365;y++;//判断生日那一年或最后一年是否为闰年for(int i=0;i<17;i++){if((y%4==0&&y%100!=0)||y%400==0){day+=366;}elseday+=365;y++;}//除第一年和最后一年之间的年份天数相加printf("%d\n",day);}}return 0;}


0 0
原创粉丝点击