【发布时间】:2019-01-02 20:36:21
【问题描述】:
所以在我的项目中,我正在尝试计算股票交易,其中一个字段要求我减去日期 04/15/2018(购买日期) 04/27/2018(销售日期)但是,我不是确定如何进行减法。
我尝试过像 04/15/2018-04/27/2018 这样的减法,但由于这在逻辑上没有意义,所以我不确定该怎么做。
【问题讨论】:
标签: python-3.x
所以在我的项目中,我正在尝试计算股票交易,其中一个字段要求我减去日期 04/15/2018(购买日期) 04/27/2018(销售日期)但是,我不是确定如何进行减法。
我尝试过像 04/15/2018-04/27/2018 这样的减法,但由于这在逻辑上没有意义,所以我不确定该怎么做。
【问题讨论】:
标签: python-3.x
把它们变成日期然后你可以简单地减去,见datetime.datetime.strptime(),例如:
In []:
from datetime import datetime
d1 = datetime.strptime('04/15/2018', '%m/%d/%Y')
d2 = datetime.strptime('04/27/2018', '%m/%d/%Y')
d1 - d2
Out[]:
datetime.timedelta(days=-12)`
【讨论】:
您需要更深入地了解标准库中的datetime 包。另一个有用的包是dateutil,它有一些更高级的解析功能。
你可以这样做
start_date = "04/15/2018" # note that this is a string
end_date = "04/27/2018"
from dateutil.parser import parse
start_dt = parse(start_date)
end_dt = parse(end_date)
time_delta = end_dt - start_dt
# get the time between the two dates in different units
days_between_dates = time_delta.days
seconds_between_dates = time_delta.total_seconds()
【讨论】:
借用Difference between two dates in Python这个答案datetime.datetime.strptime模块可以做日期计算:
from datetime import datetime
def days_between(d1, d2):
d1 = datetime.strptime(d1, '%m/%d/%Y')
d2 = datetime.strptime(d2, '%m/%d/%Y')
return abs((d2 - d1).days) # ensures a positive return value
print(days_between('04/15/2018', '04/27/2018'))
输出:
12
【讨论】: