#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
int sum;
switch(month)
{
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;
default:sum=334;
}
if ((year%4==0&&year%100!=0)||year%400==0)
{
if(month>=3)
{
printf("第%d年第%d月第%d天是该年的第%d天",year,month,day,sum=sum+day+1);
}
else
{
printf("第%d年第%d月第%d天是该年的第%d天",year,month,day,sum=sum+day);
}
}
else
{
printf("第%d年第%d月第%d天是该年的第%d天",year,month,day,sum=sum+day);
}
return 0;
}
有一点是没有考虑0-12月外的数字。还有就是有点麻烦,需要计算前几个月相加的和。建议你这样试一下:
#include<stdio.h>
int main(void)
{
int year = 1996, month = 9, day = 14, num = 0, m;
switch(month)
{
case 12 : num += 30; //11月的天数
case 11 : num += 31;
case 10 : num += 30;
case 9 : num += 31;
case 8 : num += 31;
case 7 : num += 30;
case 6 : num += 31;
case 5 : num += 30;
case 4 : num += 31;
case3 : num += 28;
case2 : num += 31;
case1 : num += 0;
break;
default : printf("一年只有12个月哦~\n");
下面就一样了
case 12;sum=xxxxx
default...
好像有漏洞哦, switch语句没有考虑到0-12月外的数字。 default:printf("%s","请输入正确的月份");break;