崇尚新闻网

崇尚新闻网独家

万年历代码 C语言实现万年历(完整源码)

2021-06-11 19:52:57 独家

万年历的C语言实现

各位~

最近看到之前写的代码——万年历

拿出来修改一下,分享给大家

有兴趣可以试试

这是程序运行图,一个完整的日历,可以显示实时的日期、月份和年份,日期定位到今天用方括号,用箭头键查看任意年份和月份的日历。

使用的知识点有:1。数组;2.头文件中系统时间的操作;3.键盘信息与计算机的交互。强调一点:这么小的项目级程序,整个项目框架的构建很重要,就是整个逻辑思维很重要,切记!!!

为了方便大家学习,我给出了整个源代码。这一次不用问有没有源代码。都在下面,在代码的关键点给出了注释。希望你能用慢慢学到的东西培养自己做项目的意识。无论大小,我保证,只有你自己真的做到了,你才能感受到那种成就感。

"

源代码的完整版本:

#include &lt。stdio.h&gt。

#include &lt。conio.h&gt。

#include &lt。windows.h&gt。

#包含“time.h”

int键;

整数年、月;

Intmon [2] [13] = {{0,31,28,31,30,31,31,30,31,30,31,31,31},/*定义每月的天数*/

{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };

time _ t lt

Int showtime() /*显示系统时间*/

{

lt =时间(NULL);

Printf("周/月/日时间年n ");

printf(" %s ",ctime(& lt;));/*以字符串形式输出系统时间*/

}

Int nowyear() /*系统年份*/

{

struct tm * local

lt =时间(NULL);

local = local time(& lt;);

返回本地->;TM _ year+1900;/*系统年份从1900年到0年计算*/

}

Int nowmonth() /*系统月*/

{

struct tm * local

lt =时间(NULL);

local = local time(& lt;);

返回本地->;TM _ mon+1;

}

Int nowday() /*系统是哪天*/

{

struct tm * local

lt =时间(NULL);

local = local time(& lt;);

返回本地->;tm _ mday

}

Int getkey1(int year,int key) /*检测键盘的上下箭头键*/

{

如果(72 ==键)/*向上箭头键代码是72*/

{

year++;

}

否则,如果(80 ==键)/*向下键代码是80*/

{

年份-;

}

返回年份;

}

Int getkey2(int month,int key) /*检测键盘的左右方向键*/

{

If (77 == key) /*右向键码是77*/

{

month++;

}

否则,如果(75 ==键)/*左方向键代码是75*/

{

月-;

}

返回月份;

}

Int isleap(int year) /*判断是不是闰年*/

{/*被4整除但不能被100整除的闰年*/

int leap/*除以400是闰年*/

leap =((year % 4 = = 0)amp;& amp(年% 100!= 0)| |(year % 400 = = 0));

返回跳跃;

}

Int是星期(int year,int month,int day)/*确定星期几*/

{

int i,j,week

int all day = 0;

for(I = 0;i &lt。年份;i++)

{

If (1 = = islap (I))/*闰年有366天*/

{

all day = all day+366;

}

其他

{

all day = all day+365;/*非闰年有365天*/

}

}

for(j = 1;j &lt。月份;j++)

{

all day = all day+mon[is leap(year)][j];

}

all day = all day+day;

week =(all day-1)% 7;/*计算一周中的某一天,周日到周六为0到6*/

返回周;

}

Int showdata() /*显示系统月份的日历*/

{

int i,z;

int j = 0;

printf(" n ");

Printf(" %d year %d month n ",nowyear(),now month());

printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n”);

《Fri周六周日》;

printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n”);

z = isweek(nowyear(),nowmonth(),1);

for(I = 0;i &lt。z;i++)

{

printf(" ");

}

for(I = 0;i &lt。mon[is leap(now year())][now month()];i++)

{

if((I = = now day()-1)amp;& amp(i & lt9)) /*今天标记系统时间[] */

{

printf(" [%d]",I+1);

}

else if (i == nowday() - 1)

{

printf(" [%2d]",I+1);

}

else if (i == nowday())

{

printf("%5d ",I+1);

}

其他

{

printf("%6d ",I+1);

}

if((0 = =(z+I+1)% 7)amp;& amp((i + 1)!= mon[is leap(now year())][now month()]))

{/*每7天更换一次线路*/

j++;

printf(" n ");

}

}

If (j == 3) /*将提示保持在同一行*/

{

printf(" nnnn ");

}

if (j == 4)

{

printf(" nnn ");

}

if (j == 5)

{

printf(" nn ");

}

Printf("按方向键进入查询状态");

}

Int checkdata() /*显示要查询的月份日历*/

{

int i,z;

int j = 0;

printf(" nnn ");

Printf(" %d年%d月n ",年,月);

printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n”);

《Fri周六周日》;

printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n”);

z = isweek(年、月、1);

for(I = 0;i &lt。z;i++)

{

printf(" ");

}

for(I = 0;i &lt。mon[is leap(year)][month];i++)

{

printf("%6d ",I+1);

if((0 = =(z+I+1)% 7)amp;& amp((i + 1)!= mon[isleap(year)][month])

{

j++;

printf(" n ");

}

}

If (j == 3) /*将提示保持在同一行*/

{

printf(" nnnn ");

}

if (j == 4)

{

printf(" nnn ");

}

if (j == 5)

{

printf(" nn ");

}

Printf("按上下箭头键查询年份,按左右箭头键查询月份n ");

Printf("按ESC键返回系统时间");

}

Int reno() /*刷新系统时间和日历*/研究组(594089997)

{

while(!Kbhit()) /*键盘没有输入时循环*/

{

show time();/*显示时间*/

show data();/*显示挂历*/

睡眠(1000);/* 1秒延迟*/

系统(“cls”);/*清除屏幕*/

}

}

Int str() /*检测键盘并显示要查询的月份日历*/

{

year = now year();/*将年和月初始化为系统时间*/

month = now month();

printf(" nn ");

key = 0;/*初始化密钥记录*/

而(27!=键)/*未按下ESC时循环*/

{

year = getkey1(year,key);/*将键值传递给年和月*/

month = getkey2(month,key);

if(月>;12)

{/* 12个月后加一年*/

month = month % 12

year = year+1;

}

if(月& lt1) /*一年前,不到一月*/

{

月=月+12;

year = year-1;

}

系统(“cls”);/*清除屏幕*/

check data();

getch();/*键盘输入*/

key = getch();

}

}

Int main(void) /*主函数*/

{

While (1) /*无限循环*/

{

Reno();

str();

系统(“cls”);

}

返回0;

}

"

以上就是【万年历代码 C语言实现万年历(完整源码)】的详细内容,如果您不了解万年历代码 C语言实现万年历(完整源码)的具体信息,请浏览下面万年历代码 C语言实现万年历(完整源码)的最新相关资讯。

查看更多万年历代码 C语言实现万年历(完整源码)相关详细内容

相关推荐:

大朗碧桂园业主论坛 【活动报道】碧桂园物业便民服务日精彩回顾!

为了方便业主和居民的家居生活,增强业主之间的互动,倡导助人为乐,营造和谐社区。 碧桂园物业设施完善 免费磨刀、剪刀、学前教育机构、验眼等。 现场工作人员应安排好所有活动和服务的服务岗位,现场应整洁有序。 便捷服务日 幼儿教育是最重要的 变老是最重要的 注意 每天测量 免费剪刀 我的发型来自帅帅 我们一起磨刀 2019年10月21日...

哔哩哔哩视频 腾讯、优酷、爱奇艺、哔哩哔哩,哪家视频网站最好用?

说起视频网站,一开始只有优酷,现在腾讯视频和爱奇艺都是“长江后浪推前浪”,后起之秀也在后面追。那么四大视频网站哪一个可以算好用呢? 1.优酷 收购土豆后,优酷一度风头正劲。结果,它的市场份额在不到四年的时间里跌至第三位。然而,"百足虫死而不僵",再加上背后的阿里爸爸,它也不会真的落后。但是优酷自制内容不如另外两个,基本没有现象级自制综艺。虽然有《白夜追凶》这么大的剧集,但是自制剧的整体影响力还是不...

优酷视频网站 腾讯、优酷、爱奇艺、哔哩哔哩,哪家视频网站最好用?

说起视频网站,一开始只有优酷,现在腾讯视频和爱奇艺都是“长江后浪推前浪”,后起之秀也在后面追。那么四大视频网站哪一个可以算好用呢? 1.优酷 收购土豆后,优酷一度风头正劲。结果,它的市场份额在不到四年的时间里跌至第三位。然而,"百足虫死而不僵",再加上背后的阿里爸爸,它也不会真的落后。但是优酷自制内容不如另外两个,基本没有现象级自制综艺。虽然有《白夜追凶》这么大的剧集,但是自制剧的整体影响力还是不...

紫荆花幼儿园 Let's go to Canada!启东紫荆花幼儿园半日体验活动预约中······

◆ ◆营养餐◆ ◆ ◆丰富的活动◆ 在这里,孩子从生活中体验,在游戏中学习,在活动中发展。我们希望孩子不仅健康活泼,积极探索,乐于分享,而且有能力面对未来。 外教上课组织各种活动 8:10~9:00户外活动 9:00~9:30爱饭 9: 30至10: 30的主题活动 10: 30至11: 00的区域活动 中午11: 10到11: 20听 11:20~12:00美味午餐 扫描下面的二维码,...

湖南医科大学 湖南大学:从“湖南老大”到“惨被降级”,全因错过一所医学院

20世纪90年代末,中国出现了一场轰轰烈烈的大学合并浪潮,涉及到中国数百所大学,对中国目前的大学格局产生了深远的影响。很多院校都在这次合并中崛起。浙江大学、武汉大学、华中科技大学、四川大学等。所有人都从这次合并中受益匪浅,成为中国著名的大学。 当然,并不是所有的高校都在这次合并中取得了一定的成绩,比如湖南大学,它是这次合并中受伤害最严重的985高校。 湖南大学,号称最古老的大学,始建于岳麓书院旧...

广州海洋公园 几个月无游客,6月或将倒闭!再见了,香港海洋公园?!

因为特殊时期 上海迪士尼关闭公园三个多月后, 最近公园终于重新开放了! 香港海洋公园也有很多广州人 去香港一定要打卡的地标! 有很多朋友的童年记忆 现在我们来谈谈海洋公园 还能回忆起当时的美好瞬间 尤其是缆车上的风景... 但是最近我听到了破产的消息 这真的让很多人措手不及 我希望香港的海洋公园能够成功度过这个难关 再现充满欢乐的“童话世界”! ■今天的话题■ 如果疫情过后, 如果海...