要点思路:1.当输入一个日期的时候,我们应该首先判断该年份是不是闰年,至此我们可以自定义一1函数leap()来进行判断。该函数的核心内容的判断条件为能否被4整除但不能被100整除,或者是不能被400整除。
2.如何判断输入的日期是一年的第几天,我们可以将闰年和平年每个月的天数定义为两个数组,因为其二月的天数不同,判断出输入的年份是什么时可以将其前m-1个月的天数累加,最后再加上day。
代码如下:
#include<stdio.h>
int leap(int a)
{
if(a%4==0&&a%100!=0||a%400==0)
return 1;
else
return 0;
}/*是闰年返回1,反之返回0*/
int number(int year,int m,int d)/*自定义函数number()计算输入的日期为该年的第几天*/
{
int sum=0,i,j,k,
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};/*数组a存放平年的每个月的天数*/
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};/*数组b存放闰年的每个月的天数*/
if(leap(year)==1)
{ for(i=0;i<m-1;i++)
sum+=b[i];
else
for(i=0;i<m-1;i++)
sum+=a[i];
}
sum+=d;
}
int main()
{
int year,month,day,n;
printf("请输如年月日\n");
scanf("%d%d%d",&year,&month,&day);
n=number(year,month,day);
printf("第%d天\n",n);
return 0;
}