1.先确定xx年的一月一号为周几

网上大部分都是写的1990年一月一日为周一这个点作为判断计算其他年份的一月一日,或者是确定月份的第一天。还有一种是计算从1——年份-1这一段时间的总天数,然后+1除以7去计算得到该年份的一月一日或者是确定月份的第一天为周几(这个应该是一种计算问题,具体更多实现方法可以自己去查),这里采用的是计算从1——该年的上一年的总天数+1,计算该年份的一月一日的周几。

2.确定xx年月份的第一天为周几

同样的道理,计算总天数之后加上今年已经过去的月份的总天数再加1除以7取余得到

3.格式问题

需要自己调试到一个合适的输出格式

代码

# -*-coding:utf-8 -*-# @name :Python万年历# @author :loading_miracleclassCalendar(object):days =[31,28,31,30,31,30,31,31,30,31,30,31]def__init__(self, year=2017):#初始化默认2017年self.year = yearifself.yearDays(year)==366:self.days[1]=29self.totalDays =0for i in range(1,self.year):self.totalDays +=self.yearDays(i)#判断每年的天数defyearDays(self,year):return366if(year %4==0and year %100!=0)or year %400==0else365# 查看某个月的日历defmonths(self,month):totalDays =self.totalDaysfor i in range(1,month):totalDays+=self.days[i-1]#计算确定月份的第一天为周几self.week =(totalDays+1)%7self.show(month)#查看全年日历defwholeYear(self):# 计算确定年份的一月一日为周几self.week =(self.totalDays+1)%7for i in range(1,13):self.show(i)#显示输出函数defshow(self,month):print '\t\t{}年{}月份日历'.format(self.year,month)print 'Sun  Mon  Tues  Web  Thur  Fri  Sat'print '-----------------------------------------'begin=1for j in range(0,self.week):print '%4s'%'',whilebegin<=self.days[month -1]:print '%4d'%begin,begin+=1self.week =(self.week +1)%7ifself.week %7==0:printprint '\n\n'if __name__ =="__main__":data =Calendar()data.wholeYear()data.months(5)

用python生成万年历相关推荐

  1. 使用OpenCV和Python生成视频条形码

    使用OpenCV和Python生成视频条形码 1. 效果图 2. 原理 2.1 步骤 2.2 项目结构 3. 源码 参考 这篇博客将演示如何使用Python + OpenCV生成视频条形码. 生成视频 ...

  2. python生成订单号或生成任意序列

    python生成订单号或生成任意序列 示例代码: import time# 生成订单号 def get_order_code():# 年月日时分秒+time.time()的后7位order_no = ...

  3. 独家 | 手把手教你怎样用Python生成漂亮且精辟的图像(附教程代码)

    作者:Fabian Bosler 翻译:车前子 校对:吴振东 本文约4800字,建议阅读15分钟. 本文将介绍如何利用Python生成图像并将结果做出可视化分析. 在上周的文章<用python从 ...

  4. Python生成随机五位数——模仿手机验证码

    使用Python生成随机的五位手机验证码. # -*- coding:utf-8 -*-#生成五位随机数,模仿手机验证码#导入random库,可以生成随机数 import randomdef ran( ...

  5. python生成时间戳_python生成13位或16位时间戳以及反向解析时间戳的实例

    我就废话不多说了,直接上代码吧! import datetime import time def get_float_time_stamp(): datetime_now = datetime.dat ...

  6. python 词云_利用Python生成词云

    利用Python生成词云 一.第三方库的安装与介绍 1.1  Python第三方库jieba(中文分词) 1.介绍 "结巴"中文分词:做最好的 Python 中文分词组件. 2.特 ...

  7. Hadoop3.0基础平台搭建(三节点),以及案例运行并使用python生成词云

    一.设备配置列表,软件包 二.主机名映射 三.生成密钥 四.将密钥发送到各个节点 五.注意事项及验证 六.关闭防火墙和SeLinux安全模块(所有主机均需操作 七.解压JDK.hadoop包,设置Ja ...

  8. python 生成随机图片

    python numpy生成随机图 # -*- coding: utf-8 -*-import numpy as np import cv2grayImage=np.random.randint(0, ...

  9. python表白代码照片墙-python入会生成照片墙 利用python生成照片墙代码

    本篇文章小编给大家分享一下利用python生成照片墙代码,对大家的学习有一定的帮助,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. PIL(Python Image Libr ...

最新文章

  1. mysql 数据库快照迁移_快照方式备份mysql 数据库
  2. 你们的竞赛更需要你们的参与
  3. thinkphp3.1迁移php7,ThinkPHP3.1迁移到PHP7的注意事项
  4. java bundle_java.util.ResourceBundle国际化用法详解
  5. 快餐文化短视频源码行业竞争激烈,短视频发展任重道远
  6. 在C++中用虚函数的作用是什么?为什么要用到虚函数
  7. composer 检查镜像_检查N元树中的镜像
  8. 诗与远方:无题(七十六)
  9. JavaScript变量提升
  10. 神州12号航天员确定:住110米“大平层” 有120种美食
  11. 实现一个shell程序
  12. 极通ewebs应用虚拟化系统v6.2完美上市
  13. 我国三大常用坐标系区别(北京54、西安80和WGS-84)
  14. 关于添加文件删除权限
  15. python决策树分类wine_Python写算法:二元决策树
  16. Python 制作迷宫游戏(一)——地图
  17. [Github] You‘ve successfully authenticated, but GitHub does not provide shell access.
  18. 真励志!从月薪2300深圳流水线女工,逆袭为年薪80万谷歌工程师,又因疫情失业:我绝不轻易认输...
  19. Kindle 3---中文越狱之路
  20. [19保研]清华大学交叉信息研究院优秀大学生夏令营

热门文章

  1. Git 多仓库管理及代码同步
  2. OpenCV实现动态人脸识别(第三讲)
  3. Vue3+node.js网易云音乐实战项目(六)
  4. linux 停止路由转发策略_Linux策略性路由应用
  5. 排坑-FAILED: UDFArgumentException The function DECIMAL takes only primitive types
  6. TCP通信基础(一发一收)
  7. 多态 (多态的用处,意义,应用)
  8. Redis的8种数据类型
  9. 华为悦盒EC6108V9C变小型服务器和NAS
  10. 家庭实验室系列文章-如何迁移树莓派系统到更大的 SD 卡?