利用python实现万年历的查询

 更新时间:2021年10月09日 09:18:59   作者:诗一样的代码  
本篇文章主要给大家分享的是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 ''

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

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

相关文章

  • vue.js实现输入框输入值内容实时响应变化示例

    vue.js实现输入框输入值内容实时响应变化示例

    这篇文章主要介绍了vue.js实现输入框输入值内容实时响应变化,结合实例形式分析了vue.js使用v-model属性进行数据绑定的相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • Python中的id()函数指的什么

    Python中的id()函数指的什么

    id() 函数用于获取对象的内存地址。很多朋友不清楚python中的id函数到底是什么?接下来小编给大家分享本文帮助大家学习
    2017-10-10
  • 小白入门篇使用Python搭建点击率预估模型

    小白入门篇使用Python搭建点击率预估模型

    本文将从零开始,仅仅利用基础的numpy库,使用Python实现一个最简单的神经网络(或者说是简易的LR,因为LR就是一个单层的神经网络),解决一个点击率预估的问题。感兴趣的朋友跟随小白一起看看吧
    2018-10-10
  • python 拷贝特定后缀名文件,并保留原始目录结构的实例

    python 拷贝特定后缀名文件,并保留原始目录结构的实例

    下面小编就为大家分享一篇python 拷贝特定后缀名文件,并保留原始目录结构的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 解决Jupyter-notebook不弹出默认浏览器的问题

    解决Jupyter-notebook不弹出默认浏览器的问题

    这篇文章主要介绍了解决Jupyter-notebook不弹出默认浏览器的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Numpy数组的转置和轴交换的实现

    Numpy数组的转置和轴交换的实现

    本文主要介绍了Numpy数组的转置和轴交换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python中Django发送带图片和附件的邮件

    Python中Django发送带图片和附件的邮件

    本篇文章主要介绍了Python中Django发送带图片和附件的邮件 ,非常具有实用价值,需要的朋友可以参考下。
    2017-03-03
  • python中upper是做什么用的

    python中upper是做什么用的

    在本篇文章里小编给大家整理的是一篇关于python中upper的作用的相关文章,有需要的朋友们可以参考下。
    2020-07-07
  • Pytorch使用技巧之Dataloader中的collate_fn参数详析

    Pytorch使用技巧之Dataloader中的collate_fn参数详析

    collate_fn 参数的目的主要是为了随心所欲的转变数据的类型,这个数据是用DataLoader加载的,比如img,target,下面这篇文章主要给大家介绍了关于Pytorch使用技巧之Dataloader中的collate_fn参数的相关资料,需要的朋友可以参考下
    2022-03-03
  • http请求 request失败自动重新尝试代码示例

    http请求 request失败自动重新尝试代码示例

    这篇文章主要介绍了http请求 request失败自动重新尝试代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01

最新评论