2025年c语言编程万历表,C语言编的年历表

c语言编程万历表,C语言编的年历表已结贴 问题点数 20 回复次数 4 C 语言编的年历表 include stdio h int yuetian int y int m int niantian int a void yuelibiao int d int s int qiuxingqi int

大家好,我是讯享网,很高兴认识大家。

已结贴√

问题点数:20 回复次数:4

ca56232b3bbedf9a539d07f37fffb99a.gif
讯享网

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

C语言编的年历表

#include "stdio.h"

int yuetian(int y,int m);

int niantian(int a);

void yuelibiao(int d,int s);

int qiuxingqi(int y,int m);

main()

{

int y,m,d,s;

printf("请输入年份y=");

scanf("%d",&y);

printf("\t\t\t%d年历表",y);

for(m=1;m<=12;m++)                                /*----循环12个月-----*/

{

s=qiuxingqi(y,m);

printf("\n\n  %d月份\n\n",m);

d=yuetian(y,m);

yuelibiao(d,s);

}

}

//==============================================

//函数名:xingqi()

//参数:int y int m

//功能:求出某年某月的一号是星期几

//返回值:s

//==============================================

int qiuxingqi(int y,int m)

{

int x1,x2,i,x;

x1=0;

x2=0;

if(y>=2007)                                       /*----以2007年1月1号为界分两段----*/

{

for(i=y-1;i>=2007;i--)                        /*-----求2007年到y-1年的天数------*/

{

x1=niantian(i)+x1;

}

for(i=m-1;i>0;i--)                            /*------求y年元旦到y年m月的天数---*/

{

x2=yuetian(y,i)+x2;

}

x=x1+x2;                                       /*--------总间隔天数------------*/

x=x%7+1;                                       /*某年某月一号是星期x-----*/

}

else

{

for(i=y;i<2007;i++)                            /*-------------求y年到2007年的天数------*/

{

x1=niantian(i)+x1;

}

for(i=m-1;i>0;i--)                              /*-------求y年元旦到y年m月的天数-------*/

{

x2=yuetian(y,i)+x2;

}

x=x1-x2;                                        /*-----总间隔天数--------*/

if(x%7==0)

x=1;                                        /*------某年某月一号是星期x--*/

else

x=8-x%7;                                    /*--------某年某月一号是星期x-----*/

}

return x;

}

//==============================================

//函数名:yueli()

//参数:int a   int s

//功能:输出月历

//返回值:无

//==============================================

void yuelibiao(int d,int s)

{

int i,j,k;

printf("   一    二    三    四    五    六    天\n");

for(i=1,j=0;i<=d;i++,j++)                    /*---------循环一个月的天数--------*/

{

if(j==0)

{

for(k=s-1;k>0;k--)                   /*---若不存在打印空格-----*/

{

printf("      ");

}

j=j+s;                               /*----将空格个数也算进去确保七天换一行----*/

}

printf("%6d",i);

if(j%7==0)                               /*-----七天换一行-----*/

printf("\n");

}

printf("\n");

}

//=============================================

//函数名:yuetian()

//参数:int y   int m

//功能:求某年某月的天数

//返回值:某年某月的天数 d

//=============================================

int yuetian(int y,int m)

{

int d;

switch(m)

{

case 1:  case 3:  case 5:  case 7:  case 8:  case 10:  case 12:

d=31;

break;

case 4:  case 6:  case 9:  case 11:

d=30;

break;

case 2:

{

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

d=29;

else

d=28;

}

}

return d;

}

//================================================

//函数名:niantian()

//参数:int a

//功能:判断该年有几天

//返回值:返回该年天数d

//================================================

int niantian(int a)

{

int d;

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

d=366;

else

d=365;

return d;

}

搜索更多相关主题的帖子:

年历 C语言

小讯
上一篇 2025-02-13 21:52
下一篇 2025-03-08 08:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/30020.html