思路
1201题是一个计算问题,计算到18岁时我们经过了多少天。根据年份累计日期即可。
注意
1.注意2月29日为生日的存在,由于2月29日是闰年才有的日子,这些人还没有到18岁,应该输出-1.
2.注意闰年、平年的计算。
代码
#include<stdio.h>
int main()
{
int t,year,month,day,sumday;
scanf("%d",&t);
while(t--)
{
scanf("%d-%d-%d",&year,&month,&day);
sumday=0;
if(month==2&&day==29) //特殊情况:2月29日
{
printf("-1\n");
continue;
}
else if(month<=2)
{
for(int counter=year; counter<=year+17; counter++)
{
if(counter%4==0&&counter%100!=0||counter%400==0)
{
sumday=sumday+366;
}
else
{
sumday=sumday+365;
}
}
}
else
{
for(int counter=year+1;counter<=year+18;counter++)
{
if(counter%4==0 && counter%100!=0 || counter%400==0)
{
sumday=sumday+366;
}
else
{
sumday=sumday+365;
}
}
}
printf("%d\n",sumday);
}
return 0;
}