最近,在做一个项目时,要求计算当天距离公元1年1月1日的天数(含公元1年1月1日),耗费了我将近半个小时时间。梳理一下思路,以备不时之需。

计算天数Python实现

距离公元1年1月1日的天数?要一天一天计算?有点Low,因为我们计算年份时还有闰年这一干扰项。历史的沙漏漏到今天,一天一天计算近似计算沙漏里面的沙子,有难度啊。呃,我是说,如果没有Python帮忙……

时间的沙漏

Python对于时间计算提供了一些列的库,如time(时间处理函数居多)、datetime(日期时间相关函数)、calendar(日历相关的一些函数)、pandas(貌似里面有关于时间的处理函数),无奈找了半天,没有找到一个能应用于这个问题的函数。我们今天不对具体的库的使用进行分析,而实针对问题提出一个具体解决方案。

Python时间库中没有具体函数哦

我们分三步计算该天数

【今年距离公元0年有多少年】当然这个年份里面有闰年有非闰年,我们分别对其进行计数,然后闰年*366天+非闰年*365天,就可以计算年份对应的天数。

【当年本月之前天数】为了方便计算,我们定义一个函数,输入年份和月份,返回指定月份的天数。函数具体定义如下所示。

获得某月天数

在这里我们使用calendar提供的一个函数isleap来判断一年是否为闰年。当然,要在程序开始之前导入:from calendar import isleap。

【这个月已过天数】这个很简单了,只是返回几号即可。

我们使用程序实现如下图所示。

程序实现代码

好了,到这基本就实现了要求,剩下来的就是我们传入的参数了,我们知道datetime模块中datetime.now()能够返回当时的时间(当然含有日期了),它的返回类似一个元组,我们可以依次提取年、月、日信息

year = datetime.datetime.now()[0]month = datetime.datetime.now()[1]day = datetime.datetime.now()[2]上面的结果直接传入我们定义的函数caldays(year, month, day)即可计算出今天距离公元1年1月1日的天数了。感兴趣的同学们可以试试看,欢迎大家留言讨论。

转载请注明出处(百家号:Python高手养成)

python程序设计请计算从公元1年1月_使用Python计算今天距离公元1年1月1日的天数...相关推荐

  1. python程序设计与基础教程第六章上机实验_《Python程序设计与算法基础教程(第二版)》江红 余青松 课后代码题详解...

    (还在更新中-) 这本书对Python的知识点的描述很详细,而且排版看的很舒服 几个例题: 假装自己从零开始学,将一些有代表性.有意思的例题抽取出来 部分复习题: 遇到有意思的复习题,我会拿出来,并且 ...

  2. python程序设计与基础教程第六章上机实验_《Python程序设计与算法基础教程》教学大纲.doc...

    PAGE 1/ NUMPAGES 2 作者:江红.余青松 定价:59元 ISBN:9787302466833 <算法与程序设计>课程教学大纲 Programming and algorit ...

  3. python程序设计上机实践第三章答案_20192419 实验三《Python程序设计》实验报告

    学号 2019-2020-2 <Python程序设计>实验3报告 课程:<Python程序设计> 班级:1924 姓名: 万腾阳 学号:20192419 实验教师:王志强 实验 ...

  4. python编程求长方体体积_python编程求长方体体积_【Python编程特训连载80】答案公布:圆柱体体积计算...

    80 [本期题目↓↓↓] 圆柱也称为圆柱体,是三维几何体的一种.一个圆柱所占空间的大小,叫作这个圆柱的体积.圆柱体积公式为: 其中,S 是底面积,h 是高,r 是底面半径.编写一个程序,用户输入底面半 ...

  5. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

  6. python实战项目书 题库系统_Python实战视频教程_基于Python项目与面试题实例讲解(进阶训练篇)...

    课程介绍: 精选50个Python项目实战与面试容易遇到的问题作为训练任务,每个任务都先提出问题,分析问题.然后给出巧妙与高效的解决办法,最后手把手代码实战完成任务,带你全面提升python项目实战核 ...

  7. python时间序列分析按月_利用 Python 进行时间序列分析

    1. 时间序列分析概述 时间序列分析在金融.气象.交通.宏观经济等诸多领域的应用可以说是非常的广泛.简单点说,时间序列就是在各个时间点上形成的数值序列,而分析的过程就是通过这些数值序列去研究其自身的变 ...

  8. 用python计算1~100的阶乘之和_在Python中递归函数调用举例and匿名函数lambda求1~100的和及计算阶乘举例...

    1.递归列出目录里的文件的脚本举例 列出目录中的文件可以通过下面方法:os.listdir() In [1]: import os In [4]: os.listdir('/root') Out[4] ...

  9. 用python计算100以内所有奇数的和_用python脚本来计算100以内奇数或者偶数之和

    #!/usr/bin/python #coding:utf-8 #while #计算1+2+3+...+100的和 #计算1+3+5...+99的和 sum=0 i=0 while i<=99: ...

最新文章

  1. java 获取utc,如何在Java 8中获取UTC + 0日期?
  2. 一作解读Microbiome:所谓的“富集培养”获得的微生物真的都是被“富集”出来的吗?
  3. 深度学习“见顶”不等于AI寒冬
  4. 些许注意事项(初学)
  5. 积累一点小Sql 表的纵横互转玩玩看
  6. C语言实现的简单的线程池
  7. Oracle中SQL语句学习五(统计分组语句group by和having)
  8. 对未标记为可安全执行的脚本_三、??XSS跨站脚本攻击
  9. Delphi 记录类型- 结构指针
  10. Apache Hudi 在 B 站构建实时数据湖的实践
  11. JSP自定义标签入门实例
  12. MySQL服务安全加固及防护
  13. Android Design 1: Back键和Up键在App导航中的表现
  14. html 字符串 放到webbrowser,delphi 直接将html字符串读入WebBrowser中
  15. 【Unity3D插件】MiniMap插件分享《小地图插件》
  16. 无线射频识别技术开发与应用学习视频
  17. Unity实战篇 |制作一个跟随鼠标转向的 简易箭头指示标,包括 UI指向 和 3D指向标
  18. 通过IMAP方式迁移U-Mail邮件到Exchange 2013之Umail搭建!
  19. 惠普电脑无故出现第三方屏保
  20. saas系统项目总结

热门文章

  1. 青春教育 发育少女不宜穿高跟鞋
  2. 智能驾驶领域基础概念
  3. 点击放大图标,放大图片
  4. 熵与神经网络的输出值
  5. 以台式计算机主机为例可以分为以下几个部分,《计算机应用基础》基础理论部份.ppt...
  6. 深入构建Kubernetes基础架构
  7. 树莓派换源(用的是阿里的源)亲测!!
  8. Docker学习目录
  9. Java 根据id不同,生成唯一礼包码
  10. 汇千网-被暴雨中断的信号,给通信系统提了什么醒?