您的位置:首页 > 其它

HDU 1201 18岁生日

2016-07-21 10:44 375 查看

18岁生日

[align=left]Problem Description[/align]
Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。

 
Input
一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。

就是算闰年的二月二十九,他经历了几个。

#include<stdio.h>
int run(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
else
return 0;
}

int main()
{
int n,y,m,d,i,t;
while(scanf("%d",&n)!=EOF)
{
while(n--)
{
scanf("%d",&y);
getchar();
scanf("%d",&m);
getchar();
scanf("%d",&d);
t=0;
if(m==2&&d==29)
printf("%d\n",-1);
else if( (run(y+0) && ((m==2&&d<29)||m==1)) ||  run(y+1)  ||   (run(y+2) && ((m==2&&d>29)||m>2)))
{
for(i=y; i<=y+18; i++)
{
if(run(i))
t++;
}
printf("%d\n",18*365+t);
}
else
{
for(i=y+1; i<y+18; i++)
{
if(run(i))
t++;
}
printf("%d\n",18*365+t);
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HDU