任务描述
本关任务:编写一个程序,输入某天是几月几日,要求算出这一天是本年的第几天。
编程要求
根据提示,在右侧编辑器补充代码,输入某天是几月几日,要求算出这一天是本年的第几天。
编程说明
要算出某天是当年的第几天,应该将当年中本月之前所有月的天数相加,再加上本月的天数。但这里有一个闰年问题,二月是一个特殊月,如该年是闰年,则二月有 29 天,否则,便是 28 天,所以,还必须给出年份,以 2005.3.5 为例,先判断不是闰年,结果就是前两个月的天数再加上 5 天,即 65 天。
测试说明
平台会对你编写的代码进行测试:
测试输入:2022-5-15预期输出:
今天是今年的第136天
#include<stdio.h>
void main()
{
int y,m,d,s;
//printf("\n Enter year-month-data:");
scanf("%d-%d-%d",&y,&m,&d);
/*********** Begin **********/
switch(m)
{
case 1:s=d;break;
case 2:s=31+d;break;
case 3:s=31+29+d;break;
case 4:s=31+29+31+d;break;
case 5:s=31+29+31+30+d;break;
case 6:s=31+29+31+30+31+d;break;
case 7:s=31+29+31+30+31+30+d;break;
case 8:s=31+29+31+30+31+30+31+d;break;
case 9:s=31+29+31+30+31+30+31+31+d;break;
case 10:s=31+29+31+30+31+30+31+31+30+d;break;
case 11:s=31+29+31+30+31+30+31+31+30+31+d;break;
case 12:s=31+29+31+30+31+30+31+31+30+31+30+d;break;
}
/*********** End **********/
if(y%4==0&&y%100!=0||y%400==0)
s-=1;
/*如果是闰年,在当前的总天数减1*/
printf("今天是今年的第%d天",s);
}