#include <stdio.h>
#include <conio.h>
#include <string.h>
#include<windows.h>
int _MONTH[]={{31},{28},{31},{30},{31},{30},{31},{31},{30},{31},{30},{31}};
int days(int *y,int *m,int *d)
{
int i,md,pastD;
i=md=pastD=0;
if((*y%4==0)&&((*y%100!=0)||(*y%400==0)))
_MONTH[1]=29; // 闰年就将2月份重置为29天
for(i=0;i<(*m-1)&&(i<11);i++)
md+=_MONTH[i]; // 统计已过去的月份天数
pastD=md+(*d); // 统计已过去的天数(即为本年的第几天)
return pastD;
}
void main()
{
int _y,_m,_d;
printf("请输入年,月,日(格式为:year,month,day):");
scanf("%d,%d,%d",&_y,&_m,&_d);
printf("当前日期:%d,%d,%d 是本年的第%d天\n",_y,_m,_d,days(&_y,&_m,&_d));
}
已在Visual C++ 6.0测试通过并输出上面的截图结果。
追问可以用SWITCH语句做一下吗?