万年历c语言程序介绍(c语言实现万年历)

本篇文章给大家谈谈万年历c语言程序介绍,以及c语言实现万年历对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、用c语言编写万年历2、C语言程序设计 万年历查询程序。3、c语言设计万年历4、万年历(C语言编程)

用c语言编写万年历

写万年历程序,您需要先了解万年历的特点

下面是万年历的特点(复制粘贴的):

1. 平年365天(52周+1天),闰年366天(52周+2天)。平年2月28天,闰年2月29天。

由于公元1月1日设为星期六,故3月1日为星期三。 ——注意这个“三”

为使算法达到最简,故本算法以“星期”为计算单位。且选3月1日为基月。

2. 每400年整一闰,或每4年且不为百年的一闰。(原因:地球绕太阳一周的时间是365天5小时46秒,为了使一年的天数为整数,将一年的天数定为365天,余下的时间积累起来,四年就是23小时15分4秒,将近一天,把这一天加在某年的二月而成29天,该年称为闰年,其它年称为平年。但四年加一天又多用了44分56秒,这个数积满400年为三天。因此400年中只能有97个闰年,所以凡能被400整除,或不能被100整除但能被4整除的年份为闰年。)

所以百年%4=0闰或(年%4=0并且年0)闰。

3. 每 4年(3个平年+1个闰年)共208周+5天 ——注意这个“5天”

每百年共100*(208周+5天)-1天=5217周+5天 ——注意这个“5天”(整百年暂设为平年)

每400年共4*(5217周+5天)+1天(整400年闰)=20871周+0天——注意这个“0天”和“1天”(4个整百年只有一个闰年)

即400年一轮回!(原来万年历400年前是一家)

至于你说的日期和星期对齐,给你一点思路参考:每一行是7天,可以设定每一天占10个字符(同时上面的星期也得占满10个字符),假设本月第一天是星期4,那么在输出1之前需要先输出10×3个字符来占位,当输出星期天的日期之后换行,之后的就简单了

C语言程序设计 万年历查询程序。

实验名称:万年历的查询及打印

【内容】:设计一个查询并打印万年历的程序。

【步骤】:

1.

画出程序流程图;

2.

编写程序;

3.

调试程序,对调试过程中出现的问题进行分析,找出错误的原因并予改正;

4.

写出通过调试并修改正确的原程序。

【要求】:

1.

程序运行后,首先在屏幕上显示主菜单:

1.

查询某年某月某日是星期几

2.

查询某年是否是闰年

3.

打印某年的全年日历

4.

退出

2.

在主菜单中输入1后,显示:

“请输入年月日(XXXX,XX,XX)”

运行后输出:XXXX年XX月XX日是星期X,是否继续查询(Y/N)?

如果输入Y,则重新显示

“请输入年月日(XXXX,XX,XX)”,否则回到主菜单。

3.

在主菜单中输入2后,显示:

“请输入要查哪一年?(XXXX)”

运行后输出:XXXX年是(否)是闰年,是否继续查询(Y/N)?

如果输入Y,则重新显示,“请输入要查哪一年?(XXXX)”,否则回到主菜单。

4.

在主菜单中输入3后,显示:

“请输入要打印的年份(XXXX)”

运行后输出XXXX年的日历,格式为:

XXXX

X(月数)

1

2

3

4

5

6

S

M

T

W

T

F

S

x

x

x

x

x

x

x

x

x

x

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

X(月数)

1

2

3

4

5

6

S

M

T

W

T

F

S

x

x

x

x

x

x

x

xx

 xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

.

.

.

.

.

 运行完后显示:“是否继续打印(Y/N)?”

 如果输入Y,则重新显示,“请输入要打印的年份(XXXX)”,否则回到主菜单。

5.

在主菜单中输入4后,显示:“是否要真的退出(Y/N)?”

如果输入Y,结束程序运行,否则重新显示主菜单。

【提示】:

1.

闰年计算:满足下列二者之一,是闰年:

能被4整除,但不能被100整除;

能被4整除,且能被400整除。

2.闰年的二月是29天,平年的二月是28天

3.星期几的计算:

S=X-1+(X-1)/4+(X-1)/100+(X-1)/400+C

X是年份,C是该年从元旦开始到到这一日的天数。

S/7的余数既是星期数

例1:1982年12月26日

由于1982年不是闰年(不能被4整除),所以该年的二月是28天。

C=31+28+31+30+31+30+31+31+30+31+30+26=360

(1月到11月的天数+12月的实际天数)

S=1982-1+(1982-1)/4+(1982-1)/100+(1982-1)/400+360=2821.3925

S/7=2821/7=403

余数为0,所以该日是星期天。

例2:2000年3月8日

由于2000年是闰年(能被4整除,又能被100和400整除),所以该年的二月是29天。

C=31+29+8=68

(1月到2月的天数+3月的实际天数)

S=2000-1+(2000-1)/4+(2000-1)/100+(2000-1)/400+68=2551.757

S/7=2551/7=364

余数为3,所以该日是星期三。

万年历c语言程序介绍(c语言实现万年历)

c语言设计万年历

/*不过除了没有查询某年某月某日是这一年的第几天。。和判断这一年的生肖外,都能满足你的要求。

加点金币帮你完善点!*/

#includestdio.h

int

Swiss(int

Years)

//判断是否是闰年

{

if(!(Years%100))

{

Years=Years/100;

}

if(Years%4)

{

return

0;

}

else

{

return

1;

}

}

int

Number(int

Yearsa,int

Yearsb)

//已知两个年份,求出两个年份之间闰年的个数

{

int

i=Yearsa+1;

int

mou=0;

do{

if(Swiss(i))

{

mou++;

}

i++;

}while(iYearsb);

return

mou;

}

int

Mvalue(int

Years,int

Month,int

Day)

//已知年月日,求出某年某月某日是星期几

{

int

M[12]={0,3,3,6,1,4,6,2,5,0,3,5};

//月值

int

N=6;

//年值初始化

int

a;

if(Years2006)

//求年值,年值以2006年为基数

{

N=6-((2006-Years)%7)-Number(Years,2006);

if(Swiss(Years))

{

if(Month3)

{

N–;

}

}

}

else

if(Years2006)

{

N=((Years-2006)%7)-1+Number(2006,Years);

if(Swiss(Years))

{

if(Month2)

{

N++;

}

}

}

a=(Day+M[Month-1]+N)%7;

//某年某月某日是星期几=(日值+月值+年值)%7

return

a;

}

int

Amonth(int

Month)

//已知月,求出这个月是大月还是小月

{

switch(Month)

{

case

1:

case

3:

case

5:

case

7:

case

8:

case

10:

//1,3,5,7,8,10,12是大月,没月31天

case

12:return

1;

case

4:

case

6:

case

9:

case

11:return

0;

//4,6,9,11是小月,每月30天

case

2:return

2;

//二月份

}

return

-1;

}

void

main

()

{

int

Dtable[7][7];

int

i,j;

int

Years=9999;

int

Month=12;

int

Day=1;

int

b;

for(i=0;i7;i++)

//初始化数组

{

Dtable[0][i]=i;

}

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

{

for(j=0;j7;j++)

{

Dtable[i][j]=0;

}

}

i=Mvalue(Years,Month,Day);

switch(Amonth(Month))

{

case

0:b=30;break;

case

1:b=31;break;

case

2:if(Swiss(Years))b=29;else

b=28;break;

//闰年2月29天,平年二月28天

default:b=-1;break;

}

for(;i7;i++)

{

Dtable[1][i]=Day++;

}

for(i=2;i7;i++)

{

for(j=0;j7;j++)

//建造日历表

{

if(Day=b)

{

Dtable[i][j]=Day++;

}

else

{

continue;

}

}

}

printf(“%d:%d\n”,Years,Month);

for(i=0;i7;i++)

//输出日历表

{

for(j=0;j7;j++)

{

printf(“%3d”,Dtable[i][j]);

}

printf(“\n”);

}

getch();

//完毕!

}

万年历(C语言编程)

#includestdio.h

#includetime.h

int leap (int year)//判断闰年

{

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

return 1;

else return 0;

}

int days_month (int month,int year)//判断月

{

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

return 31;

if(month==4||month==6||month==9||month==11)

return 30;

if(month==2leap(year)==1) return 29;

else return 28;

}

int firstday(int month,int year)//判断年

{

int w;

w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;

return w;

}

main()

{

//调用系统时间

time_t tval;

struct tm *now;

tval = time(NULL);

now = localtime(tval);

printf(“现在时间: %4d年 %d月 %02d日 %d:%02d:%02d\n”, now-tm_year+1900, now-tm_mon+1, now-tm_mday,

now-tm_hour, now-tm_min, now-tm_sec);

//调用结束

int i,j=1,k=1,a,b,month,year;

b=days_month(now-tm_mon+1,now-tm_year+1900);

a=firstday (now-tm_mon+1,now-tm_year+1900);

printf(” Sun Mon Tue Wed Thu Fri Sat \n”);

if(a==7)

{

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

{

printf(“%4d”,i);

if(i%7==0)

{

printf(“\n”);

}

}

}

if(a!=7)

{

while (j=4*a)

{

printf(” “);

j++;

}

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

{

printf(“%4d”,i);

if(i==7*k-a)

{

printf(“\n”);

k++;

}

}

}

printf(“\n”);

}

万年历c语言程序介绍的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言实现万年历、万年历c语言程序介绍的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月5日 02:14:27
下一篇 2024年4月5日 02:18:35

相关推荐

  • c语言调用外部函数,c语言在函数内部调用另一个函数

    C语言中,是否可以调用其它文件的函数? 1、C语言可以在程序中调用其他文件中的函数。在大型的程序软件开发中,为了代码的可读性,或多人同时进行代码开发,可以各写自己的源文件,然后,在编译时,将多个源文件链接到一起,就可以形成最终的目标程序。 2、不能,C语言中的static函数,内部函数和外部函数,函数一旦定义后就可被其它函数调用。当一个源程序由多个源文件组成…

    2024年5月21日
    3800
  • c语言截止符,c语言结束符

    c语言的语句结束标志是什么 1、c语言的语句结束标志是分号。在C语言中分号“;”用于结束一个语句,就如同平日常用的句号“。”作用一样。C程序是由C语言写的,能完成特定功能的一套完整的指令。组成这些指令的基本元素,称为语句。 2、C语言中语句结束标志为分号。C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、…

    2024年5月21日
    3400
  • 关于c语言脱壳的信息

    软件如何脱壳 脱壳需要的工具:调试器 比如IDA Pro、OllyDbg等等。调试器是进行逆向工程必不可少的工具,它可以帮助我们查看和分析程序内存、寄存器、堆栈等状态信息,方便我们定位和分析代码。脱壳软件 比如UPX、ASProtect、Themida等等。 步骤2脱壳 对一个加了壳的程序,去除其中无关的干扰信息和保护限制,把他的壳脱去,解除伪装,还原软件本…

    2024年5月21日
    4000
  • c语言char初始化,c语言 初始化

    c语言中char*的初始化问题 1、C语言允许用字符串的方式对数组作初始化赋值。 2、直接对变量进行赋予常量数值进行初始化;通过同类型变量进行初始化。 3、char**类型变量一般用于动态使用二维数组,操作方法如下:定义char**类型变量,初始化成NULL,或不初始化。 C语言中,局部函数中定义了一个char指针类型的变量,并初始化赋值,能将该&#8230…

    2024年5月21日
    2800
  • 贪吃蛇c语言代码vs,贪吃蛇的c语言代码

    求在VC++6.0中运行的贪吃蛇代码 1、最基础的贪吃蛇的代码#includestdio.h#includewindows.h//基本型态定义。支援型态定义函数。使用者界面函数 图形装置界面函数。 2、都要用到bios。h等头文件,他们在dev上是无法识别的,要识别只能把这些头文件给加到你的头文件库中。你遇到的问题,我都知道,另外即使你可以编译运行的话,同样…

    2024年5月21日
    3500
  • c语言编程程序,C语言编程程序自启动

    如何用c语言编写一个程序? 1、编辑,把程序代码输入,交给计算机。编译。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 2、写代码。这是最基础的一步,即实现C语言的源文件(.c,必需),和可能的头文件(.h,非必需)。2编译。将编写好的代码,通过编译工具,转换为目标文件。此步中,会对文件内部及包…

    2024年5月21日
    3900
  • c语言实验六答案,c语言实验6答案

    求C语言上机实验题答案!!! 1、以下选项中属于C语言的数据类型是( )。A. 复合型 B. 双精度型 C. 逻辑型 D. 集合型 以下说法中正确的是( )。 2、/*3 编写程序求出所有满足以下条件的四位数:其前两位数字与其后两位数字之和的平方等于该数本身。 3、字符需要用,大写字母的ascii码比小写字母小32,应该用减号。 C语言实验报告上答案1、实验…

    2024年5月21日
    3500
  • c语言加载dll,c语言加载背景音乐代码

    c语言怎么调用别人的dll文件 1、(1)编写程序时,你要包含(#include \什么.h\) dll文件作者提供 的 头文件(.h文件) 。程序里,便和普通函数调用一样,去调用它的函数。(2)程序编译时,你要链接 dll文件作者提供 的 (.lib文件) 库文件。 2、可以是可以,比较麻烦。方法我目前所知的有两种 一种是用C#写出COM组件,在系统中注册…

    2024年5月21日
    3700
  • 2014年江苏省c语言上机题,2017春3月江苏省c语言上机试卷c02

    C语言数据结构上机题 1、稀疏矩阵转置: 输入稀疏矩阵中每个元素的行号、列号、值,建立稀疏矩阵的三元组存储结构,并将此矩阵转置,显示转置前后的三元组结构。 2、: 因为要删除那些即在B表又在C表中的元素,所以A,B,C三个表中都会有这个元素。那么用指针遍历A表,用另外两个指针遍历B,C。查找B,C中同A的元素,因为3个表都是有序的,可以采用些简单的比较。找到…

    2024年5月21日
    3500
  • c语言中文件操作方式,c语言文件的操作方法

    用C语言实现文件读写操作 我们也可以在模式字符串中指定打开的模式,如rb表示以二进制模式打开只读文件,w+t或wt+表示以文本模式打开读/写文件。 使用fopen的r方式可以实现读取,用w+方式可以实现写入。 使用VS新建空工程,直接点击确定,如下所示。新建c文件,用于C语言编译器,输入main.c文件,如下所示。 C语言文件操作1、C语言对文件进行操作的三…

    2024年5月21日
    4400

发表回复

登录后才能评论



关注微信