da

张永良  •  4个月前


include<stdio.h>
int main()
{
int count;//用于存储数据有几个出生日期
int number[200];//用于存储每个出生日期到18岁的天数
scanf("%d",&count);
for(int j=0;j<count;j++)
{
int year=0,month=0,day=0,allDay=0;
scanf("%d-%d-%d",&year,&month,&day);//按照格式接收数据

//如果是闰年的2月29日出生,那么必定没有18岁生日,天数设置为-1
if((year%400==0||(year%4==0&&year%100!=0))&&(month==2)&&(day==29))
{
number[j]=-1;
continue;//下面的代码就不执行了,进行下一次循环
}

//分2月28前后,2月28日之前不管下一年是不是闰年,到下一年同一天的天数只跟这一年有关
//如果在2月28日之后,还要判断下一年是不是闰年,从而改变加的天数

if((month==2&&day<=28)||month==1) //2月28日之前
{
for(int i=year;i<year+18;i++)
{
if(i%400==0||(i%4==0&&i%100!=0))//闰年天数加 1
allDay+=366;
else
allDay+=365;
}
}
if(month>2) //2月之后
{
for(int i=year+1;i<=year+18;i++)
{
if(i%400==0||(i%4==0&&i%100!=0))
allDay+=366;
else
allDay+=365;
}
}
number[j]=allDay;//将总天数赋值给number存放

}
for(int i=0;i<count;i++)//一起输出
printf("%d\n",number[i]);
return 0;
}


评论: