Python 正在获取2个日期范围内的最后日期
我正在尝试获取某个范围内的所有日期,以列出日期: 当我从2017年1月9日xxx开始到2017年1月11日结束时,我预计以下日期:Python 正在获取2个日期范围内的最后日期,python,date,iteration,Python,Date,Iteration,我正在尝试获取某个范围内的所有日期,以列出日期: 当我从2017年1月9日xxx开始到2017年1月11日结束时,我预计以下日期: 2017-01-09 2017-01-10 2017-01-11 问题是我只知道 2017-01-09 2017-01-10 第三次约会我错过了什么 def generate_index_date_list(): # format like "11/Jan/2017:11:11:11 +0200" start_datetime_string = "09/J
- 2017-01-09
- 2017-01-10
- 2017-01-11
- 2017-01-09
- 2017-01-10
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)
您是否尝试过:
def daterange(start_date, end_date):
for n in range(int((end_date - start_date).days) + 1):
yield start_date + timedelta(n)
Python
range
生成的数字最多为,但不包括给定的数字。这就是最后一个日期不包括在内的原因。不要忘记,范围
上升到但不包括结束值。从数字的角度考虑一下。如果daterange
是4-2
,那么它只会产生2个日期,而如果它是5-2
,则会产生3个日期。你必须在你的daterange
函数中添加1。真的xD,我已经认为这一定是有史以来最有趣的事情了。谢谢