新闻动态

利用python实现万年历的查询

发布日期:2021-12-27 13:31 | 文章来源:脚本之家

今天要用python做一个小功能,那就是实现万年历的查询。

首先看一下整体感觉

实现代码:

def is_leap_year(year):
if year/4==0 and  year/400 !=0:
 return True
elif year/100 == 0 and year/400 ==0 :
 return True
  else:
  return False

首先判断是否是闰年,因为计算2月是否有29天有用。

def getMonthDays(year,month):
 days = 31  #31天居多,设置为默认值
 if month == 2 : #2月份要判断是否是闰年
  if is_leap_year(year):
days=29
  else:
days=28;
 elif month in [4,6,9,11]:  #判断小月,只有30天
  days=30
 return days

由年和月份获取指定年月的月份有多少天。

def getTotalDays(year,month):
 
 totalDays=0
 for i in range(1990,year):  #使用range来循环,算出多少年多少天
  if is_leap_year(i):  #判断是否是闰年
totalDays += 366
  else:
totalDays += 365
 for i in range(1,month): #使用range循环,算出今年前面几个月过了多少天
  totalDays +=getMonthDays(year,i)
 return totalDays

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

if __name__ == '__main__':
 while True:
  print "××××××××××python实现万年历××××××××"
  year = raw_input("请输入年份(如:1990):")
  month = raw_input("请输入月份:如:1")
  try: 
year = int(year)
month = int(month)
if month <1 or month >1: 
 print "年份或者月份输入错误,请重新输入!"
 continue
  except: 
print "年份或者月份输入错误,请重新输入!" 
continue
  break
  
 print "日\t一\t二\t三\t四\t五\t六"
 iCount = 0#计数器来判断是否换行
 for i in range(getTotalDays(year,month)%7):
  print '\t',  #输出空不换行
  iCount+=1
 for i in range(1,getMonthDays(year,month)):
  print i,
  print '\t',
  iCount +=1
  if iCount%7 == 0 :  #计数器取余为0,换行
print ''

最后只需要输入年份和月份,就能把完整的整个月份的日历打出来。无论是查询以前的日历还是查询未来的日历,都是可以计算出来的。

到此这篇关于利用python实现万年历的查询的文章就介绍到这了,更多相关python实现万年历的查询内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部