以字符串格式查找两个给定日期之间的天数
Looking for days between two given dates in a string format
我确实有这样的数据:
[a, 开始日期, 结束日期]
a_list = [ ['a', '2021-02-22', '2021-02-25'] ]
并希望这两个日期之间的天数类似于 [a, startdate, enddate, days between these dates]
a_list = [ ['a', '2021-02-22', '2021-02-25', 3] ]
我该如何解决这个问题?提前致谢!
将字符串转换为 datetime.date
类型
import datetime
a_dt = datetime.date.strptime(a_list[0][1],'%Y-%m-%d')
b_dt = datetime.date.strptime(a_list[0][2],'%Y-%m-%d')
计算它们之间的 datetime.timedelta
差异
days_between = (b_dt - a_dt).days # Assuming b_dt is after a_dt for +ve days
将结果附加到您的列表中。
a_list[0].append( days_between )
开箱即用的解决方案:
from datetime import datetime
a_list = [ ['a', '2021-02-22', '2021-02-25'] ]
res = []
for el in a_list:
d1 = datetime.strptime(el[1], '%Y-%M-%d')
d2 = datetime.strptime(el[2], '%Y-%M-%d')
res.append(el + [(d2-d1).days])
res
>>> [['a', '2021-02-22', '2021-02-25', 3]]
这是实现目标的最简单方法。
from datetime import datetime
a_list = [ ['a', '2021-02-22', '2021-02-25'] ]
start_date = datetime.strptime(a_list[0][1], '%Y-%M-%d')
end_date = datetime.strptime(a_list[0][2], '%Y-%M-%d')
days = (end_date-start_date).days
a_list[0].append(days)
print(a_list)
我确实有这样的数据: [a, 开始日期, 结束日期]
a_list = [ ['a', '2021-02-22', '2021-02-25'] ]
并希望这两个日期之间的天数类似于 [a, startdate, enddate, days between these dates]
a_list = [ ['a', '2021-02-22', '2021-02-25', 3] ]
我该如何解决这个问题?提前致谢!
将字符串转换为
datetime.date
类型import datetime a_dt = datetime.date.strptime(a_list[0][1],'%Y-%m-%d') b_dt = datetime.date.strptime(a_list[0][2],'%Y-%m-%d')
计算它们之间的
datetime.timedelta
差异days_between = (b_dt - a_dt).days # Assuming b_dt is after a_dt for +ve days
将结果附加到您的列表中。
a_list[0].append( days_between )
开箱即用的解决方案:
from datetime import datetime
a_list = [ ['a', '2021-02-22', '2021-02-25'] ]
res = []
for el in a_list:
d1 = datetime.strptime(el[1], '%Y-%M-%d')
d2 = datetime.strptime(el[2], '%Y-%M-%d')
res.append(el + [(d2-d1).days])
res
>>> [['a', '2021-02-22', '2021-02-25', 3]]
这是实现目标的最简单方法。
from datetime import datetime
a_list = [ ['a', '2021-02-22', '2021-02-25'] ]
start_date = datetime.strptime(a_list[0][1], '%Y-%M-%d')
end_date = datetime.strptime(a_list[0][2], '%Y-%M-%d')
days = (end_date-start_date).days
a_list[0].append(days)
print(a_list)