因此,在我的项目中,我试图计算一次股票交易,并且其中一个字段要求我减去日期04/15/2018(购买日期),04/27/2018(出售日期),但我没有确定如何进行减法。
我已经尝试过像2018年4月15日至2018年4月27日这样的减法,但是由于从逻辑上讲这并不合理,所以我不确定如何做到这一点。
答案 0 :(得分:1)
将它们转换为日期,然后您可以简单地减去,请参见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)`
答案 1 :(得分:0)
您将希望更深入地了解标准库中的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()
答案 2 :(得分:0)
从该答案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