基于python实现简单日历


Posted in Python onJuly 28, 2018

本文实例为大家分享了python实现简单日历的具体代码,供大家参考,具体内容如下

首先要理清楚逻辑,日历的难点在于如何使用基础知识将周几与对应的日期进行对应,我这里利用了1917年1月1日为星期1,计算累计到我们要查询的月份的天数来确定所查询月份的第一天为周几.

# 输出日历界面

print("*" * 50)
print("欢迎使用【天天日历】v2.0")

# 接收用户输入的年份
year_int = int(input("请输入年份:\n"))
# 定义全局变量用于记录天数总和
sum = 0
if year_int >= 1917:
  month_int = int(input("请输入月份\n"))
  for year_every in range(1917, year_int): # 遍历从1917年到用户输入年份 用于计算到用户所输入年份共多少天
    if (year_every % 4 == 0 and year_every % 100 != 0) or \
                year_every % 400 == 0: # 如果是瑞年则366天否则平年365天
      sum += 366
    else:
      sum += 365
  for month_every in range(1, month_int): # 遍历月份用于计算由1月份到用户输入月份的总天数
    if month_every == 4 or month_every == 6 or \
            month_every == 9 or month_every == 11:
      sum += 30
    elif month_every == 2:
      if (year_int % 1 == 0 and year_int % 100 != 0) or \
                  year_int % 400 == 0:
        sum += 29
      else:
        sum += 28
    else:
      sum += 31
  # 定义变量用于定义每个月的天数
  day = 0
  # 定义变量 用于计算当月第一天为周几
  weak = sum % 7

  print("日\t一\t二\t三\t四\t五\t六")
  # 判断用户输入月份为多少天
  if month_int == 4 or month_int == 6 or month_int == 9 or month_int == 11:
    day = 30
  elif month_int == 2:
    if (year_int % 4 == 0 and year_int % 100 != 0) or \
                year_int % 400 == 0:
      day = 29
    else:
      day = 28
  else:
    day = 31
  # 输出指定空格数让第一天与周几对齐
  print("\t"*weak,end="")
  i = 1
  while i <= day: # 遍历用户查询月份
    weakend = ((sum+i)-1)% 7
    # 如果余数为6 换行否则输出空格
    if weakend == 6:
      print("%d" %i)
    else:
      print(i,end="\t")
    i += 1
else:
  print("系统正在维护暂时无法获取1917年之前的信息")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python生成url短链接的方法
May 04 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 Python
浅析Git版本控制器使用
Dec 10 Python
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
Python内存读写操作示例
Jul 18 Python
Python错误处理操作示例
Jul 18 Python
Python文件操作基础流程解析
Mar 19 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
如何使用Python调整图像大小
Sep 26 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 Python
Python的这些库,你知道多少?
Jun 09 Python
python使用tcp实现局域网内文件传输
Mar 20 #Python
基于python3实现socket文件传输和校验
Jul 28 #Python
python多进程实现文件下载传输功能
Jul 28 #Python
python如何生成网页验证码
Jul 28 #Python
python3利用tcp实现文件夹远程传输
Jul 28 #Python
python使用tornado实现简单爬虫
Jul 28 #Python
python编写简易聊天室实现局域网内聊天功能
Jul 28 #Python
You might like
关于手调机和数调机的选择
2021/03/02 无线电
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
js中获取事件对象的方法小结
2011/03/13 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
2013/02/07 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
详解vue-router导航守卫
2019/01/19 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
python根据出生日期获得年龄的方法
2015/03/31 Python
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
在python中用url_for构造URL的方法
2019/07/25 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
小学教师岗位职责
2013/11/25 职场文书
家长对小学生的评语
2014/01/28 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
送餐员岗位职责范本
2014/02/21 职场文书
美容院营销方案
2014/03/05 职场文书
《长江之歌》教学反思
2014/04/17 职场文书
监督检查工作方案
2014/05/28 职场文书
会计专业求职信
2014/08/10 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
地道战观后感
2015/06/04 职场文书
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers