/*-------------------------------------------------------
通过函数调用,输出某一天是这一年中的第几天。(注:使用Switch)
-------------------------------------------------------*/
#include <stdio.h>
int day(int y,int m,int d);
main()
{
int y,m,d,s;
printf("请输入一个日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&y,&m,&d);
s=day(y,m,d);
printf("%d-%d-%d是这一年中的第%d天\n",y,m,d,s);
}
int day(int y,int m,int d)
{
int i,s;
s=0;
/**********Program**********/
switch(m) // 先计算某月以前月份的总天数
{
case 1:s=0;break;
case 2:s=31;break;//1月31天
case 3:s=59;break;//2月28
case 4:s=90;break;//3月31天,以此类推
case 5:s=120;break;
case 6:s=151;break;
case 7:s=181;break;
case 8:s=212;break;
case 9:s=243;break;
case 10:s=273;break;
case 11:s=304;break;
case 12:s=334;break;
default:printf("data error");break;
}
s=s+d; // 再加上某天的天数
if(y % 400 == 0||(y % 4 == 0 && y % 100 != 0)) {// 判断是不是闰年
i=1;
} else {
i=0;
}
if(i == 1 && m > 2) { // *如果是闰年且月份大于2,总天数应该加一天
s++;
}
return s;
/********** End **********/
}
通过函数调用,输出某一天是这一年中的第几天。(注:使用Switch)
最新推荐文章于 2023-08-29 23:43:47 发布