Problem Description 给定一个日期,输出这个日期是该年的第几天。 Input 输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。 Output 对于每组输入数据,输出一行,表示该日期是该年的第几天。 Sample Input 1985/1/20 2006/3/12 Sample Output 20 71 |
#include <stdio.h>
int main (){
int a,b,c,sum,i,m[]={31,29,31,30,31,30,31,31,30,31,30,31};// 定义闰年十二月份的天数 用于累加
while (~scanf("%d/%d/%d",&a,&b,&c))
{ sum=0;
if (a%400==0||(a%100!=0&&a%4==0)) // 判断是否是闰年
{if (b>1)
for (i=0;i<b-1;i++)
sum+=m[i];
}
else if (b>2) // 对非闰年进行讨论
{
for (i=0;i<b-1;i++)
sum+=m[i];
sum=sum-1;
}
else if (b==2)
sum=31;
printf("%d\n",sum+c);
}
return 0;
}