1. 程式人生 > >NYOJ【75】日期計算【某年某月某日是第幾天】

NYOJ【75】日期計算【某年某月某日是第幾天】

日期計算

時間限制:3000 ms  |  記憶體限制:65535 KB 難度:1
描述
如題,輸入一個日期,格式如:2010 10 24 ,判斷這一天是這一年中的第幾天。
輸入
第一行輸入一個數N(0<N<=100),表示有N組測試資料。後面的N行輸入多組輸入資料,每行的輸入資料都是一個按題目要求格式輸入的日期。
輸出
每組輸入資料的輸出佔一行,輸出判斷出的天數n
樣例輸入
3
2000 4 5
2001 5 4
2010 10 24
樣例輸出
96
124

297

解析:

       首先判斷是否是閏年,定義一個數組儲存每個月的天數,計算的時候要注意只能計算到前一個月然後在加上當前月天數

程式如下:

#include<cstdio>
int fun(int n)
{
	if(n%4==0&&n%100!=0||n%400==0)
	   return 1;
	return 0;
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int year,month,day;
		int sum=0;
		int ans[12]={31,28,31,30,31,30,31,31,30,31,30,31};
		scanf("%d%d%d",&year,&month,&day);
		if(fun(year))
		   ans[1]=29;
		for(int i=0; i<month-1; i++)
		   sum+=ans[i];
		sum+=day;
		printf("%d\n",sum);
	}
	return 0;
}