zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python实现的简单万年历例子分享

Python 实现 简单 分享 例子 万年历
2023-06-13 09:15:25 时间

复制代码代码如下:

#!/usr/bin/envpython2
#-*-coding:utf-8-*-
__author__="jalright"

"""
使用python实现万年历
"""

defis_leap_year(year):
   """
判断是否是闰年,返回boolean值
   """
   ifyear/4==0and year/400!=0:
       returnTrue
   elifyear/100==0andyear/400==0:
       returnTrue
   else:
       returnFalse

defgetMonthDays(year,month):
   """
获取指定年月的月份有多少天
   """
   days=31       #31天居多,设置为默认值
   ifmonth==2:   #2月份要判断是否是闰年
       ifis_leap_year(year):
           days=29
       else:
           days=28;
   elifmonthin[4,6,9,11]:    #判断小月,只有30天
       days=30
   returndays

defgetTotalDays(year,month):
   """
获取1990-01-01离现在有多少天,1990-01-01是星期一,以这个为标准来判断星期
   """
   totalDays=0
   foriinrange(1990,year):    #使用range来循环,算出多少年多少天
       ifis_leap_year(i):       #判断是否是闰年
           totalDays+=366
       else:
           totalDays+=365
   foriinrange(1,month):      #使用range循环,算出今年前面几个月过了多少天
       totalDays+=getMonthDays(year,i)
   returntotalDays


if__name__=="__main__":
   whileTrue:                                #循环判断是否输入错误的格式
       print"××××××××××python实现万年历××××××××"
       year=raw_input("请输入年份(如:1990):")
       month=raw_input("请输入月份:如:1")
       try:                                   #捕捉输入异常格式和月份的正确
           year=int(year)
           month=int(month)
           ifmonth<1ormonth>1:           #判断月份是否输入错误,错误就重新开始循环
               print"年份或者月份输入错误,请重新输入!"
               continue
       except:                                #捕捉到转换成整型异常,输出提示,重新开始循环
           print"年份或者月份输入错误,请重新输入!"   
           continue
       break    #如果没有异常就跳出循环
   #ifis_leap_year(year):
   #   print"%s是润年"%year
   #else:
   #   print"%s是平年"%year
   #print"%s月份总共有%s天!"%(month,getMonthDays(year,month))

   print"日\t一\t二\t三\t四\t五\t六"
   iCount=0     #计数器来判断是否换行
   foriinrange(getTotalDays(year,month)%7):
       print"\t",                #输出空不换行
       iCount+=1
   foriinrange(1,getMonthDays(year,month)):
       printi,
       print"\t",
       iCount+=1
       ifiCount%7==0:          #计数器取余为0,换行
           print""