利用python实现万年历的查询

今天要用python做一个小功能,那就是实现万年历的查询。
首先看一下整体感觉
利用python实现万年历的查询
文章图片

实现代码:

def is_leap_year(year):if year/4==0 andyear/400 !=0:return Trueelif year/100 == 0 and year/400 ==0 :return Trueelse:return False

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

【利用python实现万年历的查询】由年和月份获取指定年月的月份有多少天。
def getTotalDays(year,month): totalDays=0for i in range(1990,year):#使用range来循环,算出多少年多少天if is_leap_year(i):#判断是否是闰年totalDays += 366else:totalDays += 365for 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 "年份或者月份输入错误,请重新输入!"continueexcept:print "年份或者月份输入错误,请重新输入!"continuebreakprint "日\t一\t二\t三\t四\t五\t六"iCount = 0#计数器来判断是否换行for i in range(getTotalDays(year,month)%7):print '\t',#输出空不换行iCount+=1for i in range(1,getMonthDays(year,month)):print i,print '\t',iCount +=1if iCount%7 == 0 :#计数器取余为0,换行print ''

最后只需要输入年份和月份,就能把完整的整个月份的日历打出来。无论是查询以前的日历还是查询未来的日历,都是可以计算出来的。
到此这篇关于利用python实现万年历的查询的文章就介绍到这了,更多相关python实现万年历的查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读