我的日期范围是从20.01.2019到30.01.2019,并且我具有需要从该数据范围中排除的日期列表[]。有人可以帮忙吗?
from datetime import timedelta, date, datetime
def daterange(start_date, end_date):
for n in range(int ((end_date - start_date).days)):
yield start_date + timedelta(n)
#Start and End is a range of dates.
start = date(2019, 1, 20)
end = date(2019, 1, 30)
for single_date in daterange(start, end):
print(single_date)
列出以排除这些日期:
mvv_list[]
print(*mvv_list, sep='\n')
列出结果:
Row(date=datetime.date(2019, 01, 22))
Row(date=datetime.date(2019, 01, 23))
我想做的最简单的方法之一就是只产生不在排除范围内的日期。这意味着您将必须以这种方式修改生成器:
def daterange(start_date, end_date, exclude):
# where exclude is the list of dates you don't want
for n in range(int ((end_date - start_date).days)):
next_date = start_date + timedelta(n)
if next_date not in exclude:
yield next_date