18歲生日 hd 1201

q923714892發表於2020-04-06
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


Sample Output

6574

#include<stdio.h>
int main()
{
	int n,a,b,c,d,i,sum;
	scanf("%d",&n);
	while(n--)
	{
		sum=0;
		scanf("%d-%d-%d",&a,&b,&c);
		d=a+18;
		if((a%400==0||a%4==0&&a%100!=0)&&b<3)
				sum=sum+1;
		for(i=a+1;i<d;i++)
		{
			if(i%400==0||i%4==0&&i%100!=0)
			sum=sum+1;
		}
		sum=sum+18*365;
		if(b>=3&&(d%400==0||d%4==0&&d%100!=0))                //記得要加括號
		sum=sum+1;
		if(b==2&&c==29)
		printf("-1\n");
		else
		printf("%d\n",sum);
	}
	return 0;
}




相關文章