前段时间听说腾讯公司有一道面试题是要求用c/c++打印一个万年日历,今天也索性拿来练练手,看看如果是自己去应聘,能完美地完成吗。下面就show一下这次做的万年日历。
所谓日历,就是可以从上面反映出某年某月某日的信息,在这里,只是简单地反映日期、星期。设计思路:
万年日历分为有四个选项:
(1).年历:打印这一年的日历。
(2).月历:打印这一个月的日历。
(3).日历:说明这一天是该年的第几天、星期几。
主要问题难度在于如何计算某年某月某日是该年的星期几,要解决这个问题,就得先知道该年的元旦(1月1日)是星期几,这是用一条计算公式来计算出来的:onedayweek=(year+(year-1)/4-(year-1)/100+(year-1)/400)%7;根据这条公式就可以很快算出元旦所属星期数。要算出具体某天是星期几,还得知道这一天是该年的第几天,由以下代码完成:
做这个万年日历,我更多的是将功能的具体实现由函数去完成,然后在main函数中调用即可,这一方面方便代码复用,另外更体现模块化编程的思想,main函数中看起来也比较清晰明了。
程序见附件,运行结果如下
时间: 2024-10-13 03:09:17