编写一个程序,输入某天是几月几日,要求算出这一天是本年的第几天。
编程说明
要算出某天是当年的第几天,应该将当年中本月之前所有月的天数相加,再加上本月的天数。但这里有一个闰年问题,二月是一个特殊月,如该年是闰年,则二月有 29 天,否则,便是 28 天,所以,还必须给出年份,以 2005.3.5 为例,先判断不是闰年,结果就是前两个月的天数再加上 5 天,即 65 天。
#include <stdio.h>
int main()
{
int y,m,d,s;
printf("\nEnter year-month-data");
scanf("%d-%d-%d",&y,&m,&d);
switch(m)
{
case 1:s=d;
break;
case 2:s=d+31;
break;
case 3:s=d+31+29;
break;
case 4:s=d+31+29+31;
break;
case 5:s=d+31+29+31+30;
break;
case 6:s=d+31+29+31+30+31;
break;
case 7:s=d+31+29+31+30+31+30;
break;
case 8:s=d+31+29+31+30+31+30+31;
break;
case 9:s=d+31+29+31+30+31+30+31+31;
break;
case 10:s=d+31+29+31+30+31+30+31+31+30;
break;
case 11:s=d+31+29+31+30+31+30+31+31+30+31;
break;
case 12:s=d+31+29+31+30+31+30+31+31+30+31+30;
break;
}
if(y%4==0&&y%100!=0||y%400==0)
s+=1;
printf("\n今天是今年的第%d天\n",s);
return 0;
}