Python制作日历
首先要明白一个公式:d = 天, m = 月份, y = 年
w = (d + 2 * m + 3*(m + 1)//5 + y + y // 4-y//100 + y//400) % 7+1
这个公式是基姆拉尔森公式,计算的结果是对7求余再加1,从而可以推算出星期几,但当月份为一月份或者二月份是,这个时候需要将年份减一,月份为等于一时,月份变为13,月份为二时,月份为14。得出的结果可以推出:
w = 1:星期一
w = 2:星期二
w = 3:星期三
w = 4:星期四
w = 5:星期五
w = 6:星期六
w = 7:星期日
制作日历,还要想到如何判断某一年是瑞年还是平年,那么就可以用到下面这个函数进行判断
def is_leap_year(y):if y % 400 == 0 or (y % 4 == 0 and y % 100 != 0):return Truereturn False
最后就是进行判断一个月有多少天,函数如下:
def get_days_in_month(y, m):if m in [1, 3, 5, 7, 8, 10, 12]:return 31elif m in [4, 6, 9, 11]:return 30else:return 29 if is_leap_year(y) else 28
运行结果为:
最后完整的代码如下:
def get_week_with_date(y, m, d):y = y-1 if m == 1 or m == 2 else ym = 13 if m == 1 else (14 if m == 2 else m)w = (d + 2 * m + 3*(m + 1)//5 + y + y // 4-y//100 + y//400) % 7+1return wdef is_leap_year(y):if y % 400 == 0 or (y % 4 == 0 and y % 100 != 0):return Truereturn Falsedef get_days_in_month(y, m):if m in [1, 3, 5, 7, 8, 10, 12]:return 31elif m in [4, 6, 9, 11]:return 30else:return 29 if is_leap_year(y) else 28while True:year = int(input('请输入年份:'))month = int(input('请输入月份:'))if month > 12:print('月份输入不正确,请重新输入')month = int(input('请输入月份:'))print('一 二 三 四 五 六 日')print('-'*20)days = get_days_in_month(year, month)for i in range(1, days+1):w = get_week_with_date(year, month, i)if i == 1:print(f"{' ' * (w-1) *3}", end='')if w == 1:print("")print(f'{i:2d}', end=' ')print("")
Python制作日历相关推荐
- python制作日历_Python如何绘制日历图和热力图
本文以2019年全国各城市的空气质量观测数据为例,利用matplotlib.calmap.pyecharts绘制日历图和热力图.在绘图之前先利用pandas对空气质量数据进行处理. 数据处理 从网站下 ...
- python制作日历_python tkinter制作日历界面的简单步骤
我们可能在编程考试里遇到过这样的编程题,对于基础不太好的小伙伴,可能很头疼这个流程,之前也跟大家说过掌握最精华的内容,才是最重要的,因此,下面小编不仅通过大家容易考试碰到的日历问题,更给大家教学,常见 ...
- python制作日历并保存成excel_利用Python自动化生成逼格高的日历!简单又实用
本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电 ...
- 如何通过Python制作日历壁纸
自从看了冬奥会的开幕式,二十四节气的倒计时,祖国大好河山,美轮美奂,于是想搜索个图当壁纸. 作为一个有追求的程序员,更是个实用主义的人,要是壁纸上能加个日历就更好了. 将日历P上去? 小了,格局小了, ...
- 【时间处理】python制作日历、判定日期是周几(2种方法) 、获取某年某月的日历数据、获取法定节假日
在写项目管理系统时,开发了日历管理模块,以结合个人日历提醒.审批流时间处理的等等,以下是用到的相关模块及代码: 1.判断给定的日期是周几(2种方法): 方法一: from datetime impor ...
- 用Python制作日历简答代码
代码如下: import calendar #输入指定的年月 yy=int(input("输入年份:")) mm=int(input("输入月份:")) #显 ...
- 用python制作日历
写一个函数用来打印通用日历表,即对任何给定的年和月份,能按下图正确打印对应的日历表: 代码如下: def is_leap_year(year):if year % 4 == 0 and year%10 ...
- python交互式日历制作图片_2.利用Python制作电子版电影台历
2020嗖的一下就要过去了,想买一个豆瓣电影台历,官方价格是98,想着有点贵,就想利用学习的Python制作一个电子版的台历,效果图如下 非周六周日 带Tips 周六周日 界面整体的布局:头部仿台历便 ...
- Python calendar日历模块的常用方法
Python calendar日历模块的常用方法 如果您想知道某一天是星期几,某个月有多少个周末...那么,日历对您来说非常方便.您的办公桌有制作精美的日历,手机里也有日历,电脑里也有日历,随手可得. ...
最新文章
- Python 2 宣布正式退休,Python 3 时代到来!
- 阿森纳如果小组第二出线
- Vue+Axios同步请求
- jdbcTemplate小用总结
- IE8/9的几个前端bug解决方案
- JSK-10926 各位数字之和的和【入门】
- MOON.ORM 3.0 具体使用方法及下载
- 如何给页面加能够临时会话的QQ
- TonglinkQ8基于linux 7.5的安装
- c语言求圆柱的底面积和体积,计算圆柱的底面积和体积
- 信息安全中最容易被忽略的软资产管理
- 网站漏洞修补之苹果cms建站系统
- xcode9 IphoneX 调试
- 彩色图片在OpenCV里的表示方式
- php getimagesize svg,getimagesize
- 手机android内存不足怎么办,安卓手机内存不足怎么办 安卓手机内存不足怎么清理...
- 深入浅出filament Android编译脚本
- html毕业答辩ppt,毕业论文答辩PPT怎么写? 经验告诉你该这样
- java 获取resource底下文件的字符内容
- Oracle19c数据库服务