C语言实现万年历(含代码详细解读)

一、前言

        在计算机编程中,制作一个万年历是一项非常实用的任务。它不仅可以帮助我们查看任何年份的日历,还可以让我们理解如何使用编程语言处理日期和时间。本文将详细介绍如何使用C语言编写一个简单的万年历程序。

二、程序结构

        在进行万年历编写的过程中我们必须得先解决平年和闰年判断的问题。

                1、闰年:可被4整除但不可被100或者可被400整除。

                2、平年:除闰年外都是平年。

        故我们可以设计一个函数来专门判断其是否为闰年,如下图所示:

        然后我们得知道每年的第一天为星期几

        传入一个形参n代表年数,通过对年份的遍历如是闰年则总天数加366,如是平年则总天数加365,最后对7求余即可得出该年份第一天是星期几了,当总天数求余为零时,我们通过一个if语句将其改为星期日,并返回主函数一个该年第一天是周几的值。

        故我们可以设计另一个函数来对其判断,如下图所示

        其次我们还需要知道每个月的第一天是星期几才可以编制万年历

        传入年份形参n和月份形参n,再定义一个数组months[13]其中包含一个0和12个月的天数,使用if语句进行判断闰平年。如是闰年二月则为29天,平年则为28天,让sum的初始值为该年第一天的星期几这样当判断1月的时候不会使得出现months[-1]使得乱码,最后对7求余得到该月的第一天是星期几。

        

        编写万年历

        同样先定义数组months[13]再定义enter用来存储当月第一天是星期几,再对其判断闰平年,其次遍历12个月份,使用for循环将1号推至该月第一天是星期几的位置,如果是星期日则换为0,不用推,然后遍历该月的天数,如果天数k+enter-1的数对7求余为0且k不是第一天则换行输出k再继续遍历天数(如果当k = 1时符合其条件会造成一些月份第一行为空)

到此只需在主函数中调用这些函数便可制成万年历了

运行结果如下:

如有观点可在评论区讨论,本人是一位新手小白有不周的地方请多见谅!!!

  • 22
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

often_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值