第几天
时间: 1ms 内存:64M
描述:
给定一个日期,输出这个日期是该年的第几天。
输入:
输入数据有多组,每组占一行,数据格式为YYYY-MM-DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
输出:
对于每组输入数据,输出一行,表示该日期是该年的第几天。
示例输入:
2000-01-01
示例输出:
1
提示:
参考答案(内存最优[920]):
#include<stdio.h>
int main()
{
int year,i,mouth,day,sum,n,a;
while(scanf("%d-%d-%d",&year,&mouth,&day)!=EOF)
{
switch(mouth)
{
case 1: sum=0;break;
case 2: sum=31;break;
case 3: sum=59;break;
case 4: sum=90;break;
case 5: sum=120;break;
case 6: sum=151;break;
case 7: sum=181;break;
case 8: sum=212;break;
case 9: sum=243;break;
case 10: sum=273;break;
case 11: sum=304;break;
case 12: sum=334;break;
}
if((year%400==0||year%100!=0&&year%4==0)&&mouth>=3)
sum+=1;
sum+=day;
printf("%d\n",sum);
}
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
int main()
{
int year,i,mouth,day,sum,n,a;
while(scanf("%d-%d-%d",&year,&mouth,&day)!=EOF)
{
switch(mouth)
{
case 1: sum=0;break;
case 2: sum=31;break;
case 3: sum=59;break;
case 4: sum=90;break;
case 5: sum=120;break;
case 6: sum=151;break;
case 7: sum=181;break;
case 8: sum=212;break;
case 9: sum=243;break;
case 10: sum=273;break;
case 11: sum=304;break;
case 12: sum=334;break;
}
if((year%400==0||year%100!=0&&year%4==0)&&mouth>=3)
sum+=1;
sum+=day;
printf("%d\n",sum);
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。