永发信息网

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

答案:5  悬赏:0  手机版
解决时间 2021-03-31 03:09
  • 提问者网友:蓝琪梦莎
  • 2021-03-30 19:14
C语言编写days函数 计算该日是该年的第几天
最佳答案
  • 五星知识达人网友:毛毛
  • 2021-03-30 20:01
#include
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不是一个有效的日期!
",y,m,d);  return -1;
 }
 for(i=1;i d+=a[i];
 return d;
}
int main()
{int year,month,day,answer;

 printf("请输入一个日期yyyy-mm-dd
"); scanf("%d-%d-%d",&year,&month,&day);
 answer=days(year,month,day);
 if(answer>0)

printf("%d-%d-%d 是该年的第 %d 天.
",year,month,day,answer); getch();
return 0;
}

全部回答
  • 1楼网友:鸠书
  • 2021-03-30 23:54
main()
{
intday,month,year,sum,leap;
printf("\npleaseinputyear,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{
 case1:sum=0;break;
 case2:sum=31;break;
 case3:sum=59;break;
 case4:sum=90;break;
 case5:sum=120;break;
 case6:sum=151;break;
 case7:sum=181;break;
 case8:sum=212;break;
 case9:sum=243;break;
 case10:sum=273;break;
 case11:sum=304;break;
 case12:sum=334;break;
 default:printf("dataerror");break;
}
sum=sum+day; 
 if(year%400==0||(year%4==0&&year%100!=0))
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)
sum++;
printf("Itisthe%dthday.",sum);
}
  • 2楼网友:想偏头吻你
  • 2021-03-30 22:49

#include
int days(int year, int month, int day) ;
int main()
{
int year, month, day ;
int total = 0 ;
printf("输入年/月/日(如2012/1/1)\n") ;
scanf("%d/%d/%d", &year, &month, &day) ;
total = days(year, month, day) ;
printf("%d年%d月%d日是该年的第%d天\n", year, month, day, total) ;
return 0 ;
}
int days(int year, int month, int day)
{


int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31} ;
int i ;
int total = 0 ;

for(i = 0; i < month - 1; i++)
total += days[i] ;
total += day ;

if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0)
{

if(month > 3)
total ++ ;
}

return total ;
}
  • 3楼网友:枭雄戏美人
  • 2021-03-30 22:14
看看这个程序吧,很简单,希望对你有帮助。
#include
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 sum += z[i] ;
sum += r ;
printf( "%d/%d/%d is %dth day!",n,y,r,sum );
return 0;
}
  • 4楼网友:轮獄道
  • 2021-03-30 21:40
#include"stdio.h"
main()
{
int y,m,d;
printf("Enter y,m,d:\n");
scanf("%d%d%d",&y,&m,&d);
printf("days=%d",days(y,m,d));
}
days(int y,int m,int d)
{

int i,sum=d;
for(i=1;i {
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:sum+=31;break;
case 4:
case 6:
case 9:
case 11:sum+=30;break;
case 2:if(y%400==0||y%4==0&&y%100%100!=0)
sum+=29;
else sum+=28;
break;
}
}
return sum;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯