在Python中找到两个日期的中点日期

25 投票
2 回答
18979 浏览
提问于 2025-04-18 18:22

给定的日期:

my_guess = '2014-11-30'
their_guess = '2017-08-30'

我该如何计算这两个日期之间的差距,并返回正确的日历日期呢?

2 个回答

5

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会做出反应。

比如说,如果你想让程序在用户输入一个特定的数字时显示一条消息,你就需要用到条件语句。条件语句就像是一个检查点,程序会在这里判断条件是否成立,如果成立就执行相应的操作。

这就好比你在生活中设定了一些规则,比如“如果今天下雨,我就带伞”。在这个例子中,“今天下雨”就是条件,而“带伞”就是在条件成立时你要做的事情。

所以,理解条件语句就像理解生活中的简单规则一样,掌握了这些规则,你就能让程序按照你的想法去运行。

from datetime import datetime
d1 = datetime.strptime(my_guess,"%Y-%m-%d")
d2 = datetime.strptime(their_guess,"%Y-%m-%d")
print d1.date() + (d2-d1) / 2 # first date plus the midpoint of the difference between d1 and d2  
2016-04-15 
47

一种方法是使用 datetime。你可以先计算两个日期之间的差距,然后把这个差距减半,再把这个值加到较早的日期上:

>>> from datetime import datetime
>>> a = datetime(2014, 11, 30)
>>> b = datetime(2017, 8 ,30)
>>> a + (b - a)/2
2016-04-15 00:00:00

撰写回答