本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
利用python实现万年历的查询
talkchan · 200浏览 · 发布于2021-10-09 +关注

本篇文章主要给大家分享的是python实现万年历的查询,利用python做能够实现万年历查询的一个小功能,感兴趣的小伙伴可以参考一下

今天要用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 ''

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


相关推荐

PHP实现部分字符隐藏

沙雕mars · 1312浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 896浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 957浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 953浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1076浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
大家好,我是一名专注技术开发的技术屌丝,有什么问题可以互相交流,一起学习进步,谢谢。
分类专栏
小鸟云服务器
扫码进入手机网页