如何使用python查找两个日期之间的日期(开始日期和结束日期除外)

时间:2018-12-29 16:21:54

标签: python

我有10-02-2016格式的两个日期16-02-2016dd-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

有人有什么建议吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

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))

答案 1 :(得分:1)

具有列表理解功能的选项,在您需要的地方切片:

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