代码如下:

1 #!/usr/bin/env python2

2 #-*- coding:utf-8 -*-

3 """

4 使用python实现万年历

5 """

6

7 def is_leap_year(year):

8 """

9 判断是否是闰年,返回boolean值

10 """

11 if year/4==0 and year/400 !=0:

12 return True

13 elif year/100 == 0 and year/400 ==0 :

14 return True

15 else:

16 return False

17

18 def getMonthDays(year,month):

19 """

20 获取指定年月的月份有多少天

21 """

22 days = 31 #31天居多,设置为默认值

23 if month == 2 : #2月份要判断是否是闰年

24 if is_leap_year(year):

25 days=29

26 else:

27 days=28;

28 elif month in [4,6,9,11]: #判断小月,只有30天

29 days=30

30 return days

31

32 def getTotalDays(year,month):

33 """

34 获取1990-01-01离现在有多少天,1990-01-01是星期一,以这个为标准来判断星期

35 """

36 totalDays=0

37 for i in range(1990,year): #使用range来循环,算出多少年多少天

38 if is_leap_year(i): #判断是否是闰年

39 totalDays += 366

40 else:

41 totalDays += 365

42 for i in range(1,month): #使用range循环,算出今年前面几个月过了多少> 天

43 totalDays +=getMonthDays(year,i)

44 return totalDays

45

46

47 if __name__ == '__main__':

48 while True: #循环判断是否输入错误的格式

49 print "××××××××××python实现万年历××××××××"

50 year = raw_input("请输入年份(如:1990):")

51 month = raw_input("请输入月份 (如: 1) : ")

52 try: #捕捉输入异常格式和月份的正确

53 year = int(year)

54 month = int(month)

55 if month <1 or month >12: #判断月份是否输入错误,错误就重新开始循环

56 print "年份或者月份输入错误,请重新输入!"

57 continue

58 except: #捕捉到转换成整型异常,输出提示,重新开始循环

59 print "年份或者月份输入错误,请重新输入!"

60 continue

61 break #如果没有异常就跳出循环

62 #if is_leap_year(year):

63 # print "%s是润年"%year

64 #else:

65 # print "%s是平年"%year

66 #print "%s月份总共有%s天!"%(month,getMonthDays(year,month))

67

68 print "日\t一\t二\t三\t四\t五\t六"

69 iCount = 0 #计数器来判断是否换行

70 for i in range(getTotalDays(year,month)%7+1):

71 print '\t', #输出空不换行

72 iCount+=1

73 for i in range(1,getMonthDays(year,month)):

74 print i,

75 print '\t',

76 iCount +=1

77 if iCount%7 == 0 : #计数器取余为0,换行

78 print ''

运行效果:

运行效果

python万年历代码_利用python实现万年历相关推荐

  1. python太阳代码_利用python计算太阳天顶角、方位角、高度角

    在遥感计算中一般都会用到天顶角.方位角.高度角.之前都是直接在excel中输入公式,这种方式输入公式比较麻烦,而且容易出错.后来在网上看到吉林大学汪自军博士的计算程序.链接:[http://blog. ...

  2. python计算面积代码_利用Python求阴影部分的面积实例代码

    利用Python求阴影部分的面积实例代码 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  利用Python求阴影部分的面积实例代码.txt ] (友情提示:右键点 ...

  3. python照片墙地图_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  4. python爬虫背景_利用Python代码实现一键抠背景功能

    前言 又是一个逛csdn发现的一个有趣的小项目,可以一键抠背景,需要用到removebg模块及其API,API可从其官网免费获取,网址如下https://www.remove.bg/zh ps:加上/ ...

  5. python做游戏代码_利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单!...

    相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻的.曾经流量很少,响应很快 ...

  6. python删除数据库的数据完整代码_利用python操作小程序云数据库实现简单的增删改查...

    不止python,你可以利用任何语言那实现通过http请求来操作你自己的小程序云数据库了 背景 也是在最近吧,小程序更新了云开发 HTTP API 文档,提供了小程序外访问云开发资源的能力,使用 HT ...

  7. python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  8. 钉钉一行代码_利用Python快速搭建钉钉和邮件数据推送系统

    前面的文章我们写到了利用Python实现钉钉和邮件的数据推送,在数据处理这一块实现了对mysql和odps的数据获取和处理,可以满足常规业务大部分数据场景需求,在一家初创公司数据基础建设还不完善的时候 ...

  9. python 打卡记录代码_利用Python实现对考勤打卡数据处理的总结

    利用Python实现对考勤打卡数据处理的总结 一.背景交代 二.说明 三. 8种方法 1. 查看文件是否存在 2. 导入excel文件,并把数据保存为dataframe格式 3. 计算程序运行时间 4 ...

  10. python计算器程序_利用Python代码编写计算器小程序

    1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5 6 7 def __init__(self):8 #创建主界面 9 ...

最新文章

  1. 典型的SPI控制器的结构
  2. 【报告分享】2020年她趋势报告.pdf(附下载链接)
  3. 程序员笑话集锦:丈夫与妻子篇
  4. 解开Android应用程序组件Activity的singleTask之谜(3)
  5. 利用weevely生成php后门木马
  6. [读书笔记]组件设计:补白[深入剖析ASP.NET组件设计]一书中HttpApplication对象创建的细节...
  7. 资源小屋(更新ing.......)
  8. 永久关闭Linux防火墙
  9. c/c++中常见的uint8和int的联系
  10. 动画和漫画里ed、op、OVA、ost、bl、gl是什么意思?
  11. 嵌入式方面名词术语总结
  12. 维特智能4g远程物联姿态三轴加速度角度传感器WT901IOT
  13. 光大银行h5支付(php接入光大银行h5支付)
  14. linux内核崩溃+grub,Linux内核崩溃信息分析
  15. argo 现水下永动机器人_【现水下永动机器人是怎么回事?水下永动机器人】_永动机 水下_全球新能源网...
  16. 51单片机实现简易计算器
  17. 全球征集 | “Kaleidoverse 万千灵境”元宇宙作品设计大赛
  18. [媒体分流直播]媒体直播和传统直播的区别,以及媒体直播的特点
  19. 磁感应强度 磁场强度
  20. ARM平台FS6818/s5p6818开发板实验3 —— UART实验

热门文章

  1. 视频消重伪原创有用吗 视频md5修改器最新
  2. VB2010(1)_Hello User
  3. java实现归并排序(详解)
  4. 仿人机器人(五连杆、七连杆)拉格朗日动力学建模
  5. file js new 传到后台_JS读取文件且AJAX传输到后台
  6. A题 血管机器人的订购与生物学习#2022年五一数学建模
  7. 计算机网络系统juniper
  8. Docker使用redis
  9. 探索图片填充模式二--CenterCrop模式的实现
  10. djyvp计算机电缆参数,计算机电缆标准-DJYVP-DJYPVP-DJYPV电缆外径-电缆参数