基于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实现将DOC文档转换为PDF的方法
Jul 25 Python
详解python中requirements.txt的一切
Mar 03 Python
Python iter()函数用法实例分析
Mar 17 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
Numpy中的mask的使用
Jul 21 Python
python 自定义对象的打印方法
Jan 12 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
Jan 29 Python
Python通过for循环理解迭代器和生成器实例详解
Feb 16 Python
浅谈python中get pass用法
Mar 19 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
python实现吃苹果小游戏
Mar 21 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 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
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
寻找网站后台地址的python脚本
2014/09/01 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
美国滑板店:Tactics
2020/11/08 全球购物
体育教师自荐信范文
2013/12/16 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
专业技术职务聘任书
2014/03/29 职场文书
食品流通安全承诺书
2014/05/22 职场文书
2015年加油站工作总结
2015/05/13 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python