基于Python语言的万年历功能的实现
2021-07-13王娜
王 娜
(衡水学院 河北 衡水 053000)
1 引言
Python的含义是“蟒蛇”,它的拥有者是“Python Software Foundation”,简称PSF,最开始是由Guido van Rossum所开发,发展至今已有30年了。Python语言拥有高效的易于操作的数据结构,是一门解释性语言。Python语言具有丰富的标准库和第三方库,由于它的开放性,第三方库还在不断的增加当中,可以解决生活中方方面面的问题。目前Python广泛应用于机器学习、数据分析和网络爬虫等方面。
2 万年历制作思路
万年历,顾名思义,就是可以查看任意年份月份的日历。在交互窗口输入年份和月份,就可以出现跟日历一样的图案。
制作万年历之前,必须做以下准备。
(1)判断某年是否为闰年:def isLeapYear(year): #判断是否是瑞年
(2)列举出每个月的天数并返回:def monthDay(year,month): #12个月的天数
(3)统计出从1900年1月1日到上个月的天数之和:
def totalDay(year,month):
days = 0
for index_year in range(1900,year):
days += 366 if isLeapYear(index_year) else 365
for index_month in range(1,month):
days += monthDay(year,index_month)
return days
也就是说,如果想看2021年3月份的日历,首先计算一下从1900年1月1日开始,到2021年2月底一共多少天。为什么要从1900年的1月1日开始算呢?因为这一天是星期一。从这一天开始,也是为了后续的日期比较好计算是星期几。
(4)计算出本月的1日是星期几:space_num = totalDay(year,month) % 7+1 #1号是星期几。
(5)最后分别计算出本月的每天是星期几,对号入座,注意每7日换行,打印出来。
在计算并打印日历时,需注意两个问题:一是如何让日期和相应的星期对齐,如1号是星期日,那么1号就要放到星期日的下面,2号就要放到星期一的下面,以此类推;二是如何实现换行,如我的排列是“日一二三四五六”,那么在星期六对应的日期后就应该换行。比如7号是星期六,放在六的下面,那么8号就得是下一行的开头,放在日的下面。……
