189 8069 5689

c语言年月日计算函数 c语言年月日求星期几

用C语言写一个函数,给出年月日,计算该日是该年的第几天 用#include开头的

代码如下:

成都创新互联长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为阿鲁科尔沁企业提供专业的成都网站建设、做网站阿鲁科尔沁网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

#include iostream

using namespace std;

int leap_year(int n)

{

if(n%400==0||(n%4==0  n%100!=0))

return 1;

else

return 0;

}

int main()

{

int year,month,day;

int dayCount=0,i;

int mon[]={31,28,31,30,31,30,31,31,30,31,30,31};

cout"请输入当前的年,月,日: ";

cinyearmonthday;

for(i=0;imonth-1;i++)

dayCount+=mon[i];

if(month2)

dayCount+=day+leap_year(year);

else

dayCount+=day;

cout"该日是该年的第几天: "dayCountendl;

return 0;

}

c语言年月日计算

首先,你的闰年判断就有问题。教你个口诀:“四年一润,一百年不润,四百年再润”。

其实就可以用if(yr%4==0||yr%100!=0yr%400==0){那么是闰年}

你的检验判断也可以利用mont数组的,首先判断是不是在闰年,然后判断输入days是不是大于的mont[mn](如果是闰年要判断二月+1)。

C语言程序,输入年月日算出当天星期几

先做一个函数,计算1900年1月1日到该天的天数,然后用膜除求出星期几并输出。

具体代码如下:

#include stdio.h

#include stdlib.h

int Day(int y,int m,int d);

int main(int argc, char *argv[]) {

int i;  //循环变量

int year,month,day;  //读取用户输入的年月日

int days;  //储存从1900-1-1到该天的天数

int week=0;  //储存求余后的星期

//字符串组合输出星期

char b[]={"星期"};

char c[7][4]={"日","一","二","三","四","五","六"};

loop:printf("请输入年 月 日:(空格分隔)\n");

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

days=Day(year,month,day);

//增强程序的健壮性

if(days==-1)

{

printf("输入格式有误,");

fflush(stdin);  //防止用户输入字母等其他非数字字符

goto loop;

}

else

{

week=days%7;  //用求余计算星期几

printf("%d年%d月%d日是%s%s\n",year,month,day,b,c[week]);

}

system("pause");

return 0;

}

//函数功能:输入年月日,输出1900-1-1到该天的天数,-1位输入不合法

int Day(int y,int m,int d)

{

int i;

int r=0;  //储存1900到该天的闰年个数

int a[]={31,28,31,30,31,30,31,31,30,31,30}; //m给每出月的天数

if(y=1900  m0  m13  d0  d32)

{

for(i=1900;i=y;i++)  //计算闰年的个数

{

if(i%400==0||i%100!=0i%4==0)

r++;

}

for(i=0;im-1;i++)  //统计当年1月1日到当月的天数

{

d+=a[i];

}

if((y%400==0||y%100!=0y%4==0)m3)  //如果当年是闰年但不到二月就不能算进去

r--;

return 365*(y-1900)+r+d;

}

else

return -1;

}

用C语言函数编写求年月日的程序。我想知道我这个程序哪里错了,语法没有错,但是答案不对。

你的这段代码有问题,for(i=1;im;i++)

{m=month(m,y);

sum=sum+m;}你这样写,就是将月份重复的加了,如果是三月份,你将会发现你加了好多次,自然就会出现800多天了,下面我将代码改进,答案也是对的。

#include stdio.h

#include math.h

int year(int year);

int month(int month,int year);

void main()

{

int y,m,d,sum,i,n;

printf("请输入年月日\n");

scanf("%d%d%d",y,m,d);

y=year(y);

sum=0;

n=0;//定义一个n,用于每个月份天数相加

for(i=1;im;i++)

{

n=month(m,y);//将你的m替换为n,结果就对了

sum=sum+n;

}

sum=sum+d;

printf("是第%d天",sum);

}

int year(int year)

{

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

return (366);  

else return (365);

}

int month(int month,int year)

{

switch(month)

{

case 1:   

case 3:

case 5: 

case 7:

case 8:

case 10:

case 12:

return (31);

break;

case 2:

{

if (year==366)

return(29);

else return(28);

break;

}

default: return(30);

break;

}

}


网站栏目:c语言年月日计算函数 c语言年月日求星期几
文章网址:http://cdxtjz.cn/article/ddsedgp.html

其他资讯