C语言编写days函数 计算该日是该年的第几天
5个回答
展开全部
#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;
}
展开全部
/*临时写的*/
#include <stdio.h>
int days(int year, int month, int day) ;/*声明函数原型*/
int main()
{
int year, month, day ; /*year,month,day分别表示年、月、日*/
int total = 0 ; /*total表示该年的第几天*/
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)
{
/*
**days函数用来计算year年month月day日是该年份的第几天
*/
/*days数组表示一年的12个月份每个月的总天数,其中第二个月暂定为28天, 稍后判断是否为闰年,如果是闰年多加1天*/
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31} ;
int i ;
int total = 0 ; /*total用来计算改日是该年的第几天*/
for(i = 0; i < month - 1; i++)
total += days[i] ;/*把该年份前几个月的总天数计算出来*/
total += day ;/*再加上当前Month月份的总天数*/
/*判断是否为闰年*/
if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0)
{
/*判断月份month是否大于3月*/
if(month > 3)
total ++ ; /*如果概念是闰年并且月份大于3月,
那么就要二月就不是上面定义的28天,
而是29天,因此多加1天*/
}
return total ;
}
#include <stdio.h>
int days(int year, int month, int day) ;/*声明函数原型*/
int main()
{
int year, month, day ; /*year,month,day分别表示年、月、日*/
int total = 0 ; /*total表示该年的第几天*/
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)
{
/*
**days函数用来计算year年month月day日是该年份的第几天
*/
/*days数组表示一年的12个月份每个月的总天数,其中第二个月暂定为28天, 稍后判断是否为闰年,如果是闰年多加1天*/
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31} ;
int i ;
int total = 0 ; /*total用来计算改日是该年的第几天*/
for(i = 0; i < month - 1; i++)
total += days[i] ;/*把该年份前几个月的总天数计算出来*/
total += day ;/*再加上当前Month月份的总天数*/
/*判断是否为闰年*/
if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0)
{
/*判断月份month是否大于3月*/
if(month > 3)
total ++ ; /*如果概念是闰年并且月份大于3月,
那么就要二月就不是上面定义的28天,
而是29天,因此多加1天*/
}
return total ;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看这个程序吧,很简单,希望对你有帮助。
#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;
}
#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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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<m;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;
}
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<m;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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-23
展开全部
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)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("Itisthe%dthday.",sum);
}
{
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)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("Itisthe%dthday.",sum);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询