首先要明白一个公式: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制作日历相关推荐

  1. python制作日历_Python如何绘制日历图和热力图

    本文以2019年全国各城市的空气质量观测数据为例,利用matplotlib.calmap.pyecharts绘制日历图和热力图.在绘图之前先利用pandas对空气质量数据进行处理. 数据处理 从网站下 ...

  2. python制作日历_python tkinter制作日历界面的简单步骤

    我们可能在编程考试里遇到过这样的编程题,对于基础不太好的小伙伴,可能很头疼这个流程,之前也跟大家说过掌握最精华的内容,才是最重要的,因此,下面小编不仅通过大家容易考试碰到的日历问题,更给大家教学,常见 ...

  3. python制作日历并保存成excel_利用Python自动化生成逼格高的日历!简单又实用

    本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电 ...

  4. 如何通过Python制作日历壁纸

    自从看了冬奥会的开幕式,二十四节气的倒计时,祖国大好河山,美轮美奂,于是想搜索个图当壁纸. 作为一个有追求的程序员,更是个实用主义的人,要是壁纸上能加个日历就更好了. 将日历P上去? 小了,格局小了, ...

  5. 【时间处理】python制作日历、判定日期是周几(2种方法) 、获取某年某月的日历数据、获取法定节假日

    在写项目管理系统时,开发了日历管理模块,以结合个人日历提醒.审批流时间处理的等等,以下是用到的相关模块及代码: 1.判断给定的日期是周几(2种方法): 方法一: from datetime impor ...

  6. 用Python制作日历简答代码

    代码如下: import calendar  #输入指定的年月 yy=int(input("输入年份:")) mm=int(input("输入月份:")) #显 ...

  7. 用python制作日历

    写一个函数用来打印通用日历表,即对任何给定的年和月份,能按下图正确打印对应的日历表: 代码如下: def is_leap_year(year):if year % 4 == 0 and year%10 ...

  8. python交互式日历制作图片_2.利用Python制作电子版电影台历

    2020嗖的一下就要过去了,想买一个豆瓣电影台历,官方价格是98,想着有点贵,就想利用学习的Python制作一个电子版的台历,效果图如下 非周六周日 带Tips 周六周日 界面整体的布局:头部仿台历便 ...

  9. Python calendar日历模块的常用方法

    Python calendar日历模块的常用方法 如果您想知道某一天是星期几,某个月有多少个周末...那么,日历对您来说非常方便.您的办公桌有制作精美的日历,手机里也有日历,电脑里也有日历,随手可得. ...

最新文章

  1. Python 2 宣布正式退休,Python 3 时代到来!
  2. 阿森纳如果小组第二出线
  3. Vue+Axios同步请求
  4. jdbcTemplate小用总结
  5. IE8/9的几个前端bug解决方案
  6. JSK-10926 各位数字之和的和【入门】
  7. MOON.ORM 3.0 具体使用方法及下载
  8. 如何给页面加能够临时会话的QQ
  9. TonglinkQ8基于linux 7.5的安装
  10. c语言求圆柱的底面积和体积,计算圆柱的底面积和体积
  11. 信息安全中最容易被忽略的软资产管理
  12. 网站漏洞修补之苹果cms建站系统
  13. xcode9 IphoneX 调试
  14. 彩色图片在OpenCV里的表示方式
  15. php getimagesize svg,getimagesize
  16. 手机android内存不足怎么办,安卓手机内存不足怎么办 安卓手机内存不足怎么清理...
  17. 深入浅出filament Android编译脚本
  18. html毕业答辩ppt,毕业论文答辩PPT怎么写? 经验告诉你该这样
  19. java 获取resource底下文件的字符内容
  20. Oracle19c数据库服务

热门文章

  1. 【Multisim仿真】二极管钳位电路仿真
  2. 做SEO需要学习什么?做好SEO必备的七大技能
  3. POJ1190 生日蛋糕(回溯法)
  4. ajax post无效,jQuery AJAX Post无效
  5. 基于pynq的数字识别神经网络加速器设计
  6. 视觉麦克风:从视频中还原语音
  7. 求最小公倍数【牛客网】
  8. 《OKR:源于英特尔和谷歌的目标管理利器》读书笔记
  9. TexturePacker命令行拉起参数
  10. 【广告联盟电商SEO】广告联盟网站收集