如何使用python查找两个日期之间的日期(不包括开始日期和结束日期)
我有两个日期如何使用python查找两个日期之间的日期(不包括开始日期和结束日期),python,Python,我有两个日期10-02-2016和16-02-2016采用dd-mm-yyyy格式,我想要这些日期之间的日期列表,不包括开始日期和结束日期 预期输出: 11-02-2016 12-02-2016 13-02-2016 14-02-2016 15-02-2016 我有以下代码片段: import datetime date1 = datetime.datetime.strptime('10-02-2016', '%d-%m-%Y').date() date2 = datetime.dateti
10-02-2016
和16-02-2016
采用dd-mm-yyyy
格式,我想要这些日期之间的日期列表,不包括开始日期和结束日期
预期输出:
11-02-2016
12-02-2016
13-02-2016
14-02-2016
15-02-2016
我有以下代码片段:
import datetime
date1 = datetime.datetime.strptime('10-02-2016', '%d-%m-%Y').date()
date2 = datetime.datetime.strptime('16-02-2016', '%d-%m-%Y').date()
delta = date2 - date1
for i in range(delta.days):
print(date1 + datetime.timedelta(i))
其输出为:
10-02-2016
11-02-2016
12-02-2016
13-02-2016
14-02-2016
15-02-2016
有人有什么建议吗
谢谢。带有列表理解功能的选项,在需要的地方切片:
import datetime
date1 = datetime.datetime.strptime('10-02-2016', '%d-%m-%Y').date()
date2 = datetime.datetime.strptime('16-02-2016', '%d-%m-%Y').date()
delta = date2 - date1
for i in range(1,delta.days):
print(date1 + datetime.timedelta(i))
list_of_dates = [ date1 + datetime.timedelta(i) for i in range((date2 - date1).days + 1) ]
for date in list_of_dates[1:-1]:
print(date)
# 2016-02-11
# 2016-02-12
# 2016-02-13
# 2016-02-14
# 2016-02-15
您可以使用列表理解对第一个元素进行切片。您可以更改
范围(1,delta.days+1)
。这将以i=1
而不是i=0
开始循环。谢谢@TylerChen,它工作得很好。@TylerChen,range(1,delta.days)
更接近,因为OP不需要最后一个。range(1,delta.days)
它按预期工作。这是最好的一个