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

最近,在做一个项目时,要求计算当天距离公元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高手养成)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值