/*-------------------------------------------------------
功能:编写程序(使用Switch ),给出年月日,计算出该日是该年的第几天。判断是否为
闰年的条件是:能被 4 整除但是不能被100整除或者能被四百整除。
--------------------------------------------------------*/
#include"stdio.h"
main()
{
int year,month,day,days=0,i,d;
printf("请输入年-月-日:");
scanf("%d-%d-%d",&year,&month,&day);
for(i=1;i<month;i++)
{
/**********Program**********/
switch(month)
{
case 1:days=0;break;
case 2:days=31;break;
case 3:days=59;break;
case 4:days=90;break;
case 5:days=120;break;
case 6:days=151;break;
case 7:days=181;break;
case 8:days=212;break;
case 9:days=243;break;
case 10:days=273;break;
case 11:days=304;break;
case 12:days=334;break;
}
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(month>2)
{
days+=1;
}
}
/********** End **********/
}
printf("%d-%d-%d是该年第%d天\n",year,month,day,days + day);
}
该程序使用了switch语句来根据输入的月份计算天数。在每个月份之前,通过switch语句设置了每个月份之前已经过去的天数。
在计算月份之前,还根据闰年的条件进行了判断,即能被4整除但不能被100整除,或者能被400整除。如果输入的月份大于2且满足闰年条件,则天数需要加1。
最后,将计算得到的已过去天数与输入的日份相加,得到该日期是该年的第几天,并将结果输出。