给定日期:
my_guess = '2014-11-30'
their_guess = '2017-08-30'
我该如何在日期之间拆分差值,返回正确的日历日期?
一种方法是使用 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
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
datetime
对象,也适用于date
对象(在Python 3.5中测试过)。 - phoibosa + (b - a)/2
的结果只是a的值。 - ThePartyTurtleTypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.datetime'
你有什么想法吗? - J Agustin Barrachinaa + (b - a)/2
和(a + b) / 2
是一样的... 好吧,它并不是这样的... - J Agustin Barrachinadatetime
对象:您需要使用datetime + timedelta
(减去datetime
对象会给您一个timedelta
对象)。 - Alex Rileya
和b
的值,我会进行调查。 - Alex Riley