获取2个日期范围内的最后日期

时间:2017-01-12 14:22:30

标签: python date iteration

我正在尝试获取某个范围内的所有日期以制作日期列表:

当我于2017年1月9日xxx开始并于2017年1月11日结束时,我预计会有以下日期:

  • 2017年1月9日
  • 2017年1月10日
  • 2017年1月11日

问题是我只得到

  • 2017年1月9日
  • 2017年1月10日

我错过了什么来获得第3次约会

def generate_index_date_list():
# format like  "11/Jan/2017:11:11:11 +0200"
start_datetime_string = "09/Jan/2017:11:11:11 +0200"
end_datetime_string = "11/Jan/2017:11:11:11 +0200"

startdate = datetime.strptime(start_datetime_string.split(":")[0], "%d/%b/%Y").date()
enddate = datetime.strptime(end_datetime_string.split(":")[0], "%d/%b/%Y").date()
for single_date in daterange(startdate, enddate):
    print single_date


def daterange(start_date, end_date):
    for n in range(int((end_date - start_date).days)):
        yield start_date + timedelta(n)

1 个答案:

答案 0 :(得分:1)

你试过了吗?

def daterange(start_date, end_date):
    for n in range(int((end_date - start_date).days) + 1):
        yield start_date + timedelta(n)

Python range生成的数字最多但不包括给定的数字。这就是为什么最后的日期没有被包括在内。

相关问题