C语言编写days函数 计算该日是该年的第几天怎么做?

如题所述

#include<stdio.h>

int days(int y,int m,int d)

{int i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

if(y<1||m<1||d<1||d>a[m]+(y%4==0&&y%100>0||y%400==0))

{printf("%d-%d-%d不是一个有效的日期!\n",y,m,d);

return -1;

}

for(i=1;i<m;i++)

d+=a[i];

return d;

}

int main()

{int year,month,day,answer;

printf("请输入一个日期yyyy-mm-dd\n");

scanf("%d-%d-%d",&year,&month,&day);

answer=days(year,month,day);

if(answer>0)

printf("%d-%d-%d 是该年的第 %d 天.\n",year,month,day,answer);

getch();

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-02
看看这个程序吧,很简单,希望对你有帮助。
#include <stdio.h>
int main()
{
int n,r,y,i=0,sum=0;
int z[13]={31,0,31,30,31,30,31,31,30,31,30,31};
printf( "input date (yyyy/mm/dd):" );
scanf("%d/%d/%d",&n,&y,&r);
if ( (n%4==0&&n%100!=0) || n%400==0 )
z[1]=29 ;
else
z[1]=28;
for( i=0;i<y-1;i++ )
sum += z[i] ;
sum += r ;
printf( "%d/%d/%d is %dth day!",n,y,r,sum );
return 0;
}
相似回答