日期计算
时间限制:
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
#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
int panduan(int a)
{
if (a % 4 == 0 && a % 100 != 0 || a % 400==0)//判断是否是瑞年
{
return 1;
}
return 0;
}
struct rili
{
int year;
int yue;
int ri;
};
int number(struct rili *zyw)
{
int sum = 0, a[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; //数组a存放平年每月的天数
int b[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (panduan(zyw->year) == 0)
{ int i ;
for ( i = 0; i < zyw->yue - 1; i++)
{
sum += a[i];
}
}
else
{ int i;
for (i = 0; i < zyw->yue-1; i++)
{
sum += b[i];
}
}
sum += zyw->ri;
return sum;
}
int main()
{ int n;
scanf("%d",&n);
while(n--)
{
struct rili * zeng = (struct rili*)malloc(sizeof(struct rili));
scanf("%d%d%d", &zeng->year, &zeng->yue, &zeng->ri);
struct rili *zyw = zeng;
int n = number(zyw);
printf("%d\n", n);
}
return 0;
}