Description
给出一个日期,请计算这天是这一年的第几天? 输入 第一行是一个整数N,表示样例的个数,以后每行一个日期,日期格式满足“YYYY-MM-DD”的格式(即年4位,月2位,日期2位)。 输出 每行输出一个整数,即第几天,输入保证日期的合法性。

Sample Input
3
2000-02-29
2001-02-01
2001-02-28

Sample Output
60
32
59

Source

ericxie

XTU 1103 日期_c语言

#include <stdio.h>
int main()
{
int n;
int y,m,d;
int x[12]={31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数
scanf("%d",&n);
while(n--)
{

scanf("%d-%d-%d",&y,&m,&d);
if(y%400==0||(y%4==0&&y%100!=0))//世纪闰年是四百年一闰,普通闰年是四年一闰,百年不闰
{
x[1]=29;//闰年的二月份是29天
}
else//这里else不可以省略。因为每轮都必须来判断一次
{
x[1]=28;
}
int sum=0;
for(int i=0;i<m-1;i++)
{
sum+=x[i];
}
sum+=d;
printf("%d\n",sum);
}
return 0;
}

写于2021年8月26日 16:41分。