使用Python获取一周中两天之间的日期
我正在使用python和beautifulSoup解析一个html文档,在这里我得到以下格式的字符串,即使用Python获取一周中两天之间的日期,python,date,beautifulsoup,Python,Date,Beautifulsoup,我正在使用python和beautifulSoup解析一个html文档,在这里我得到以下格式的字符串,即workingdates='周三-周二' 从那一刻起,我得到了startDate='星期三'和endDate='星期二' 我想创建一个包含所有工作日的列表,即list=[“周三”、“周四”、“周五”、“周六”、“周日”、“周一”、“周二”] 有什么想法吗?你可以构建一个所有工作日的列表 weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursda
workingdates='周三-周二'
从那一刻起,我得到了startDate='星期三'
和endDate='星期二'
我想创建一个包含所有工作日的列表,即list=[“周三”、“周四”、“周五”、“周六”、“周日”、“周一”、“周二”]
有什么想法吗?你可以构建一个所有工作日的列表
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday', 'Sunday']
确定了你的开始和结束日期
startDate, endDate = 'Wednesday', 'Tuesday'
您可以在工作日
列表中找到他们的位置
start = weekdays.index(startDate)
end = weekdays.index(endDate)
有两种可能的情况start
和start>end
。对于第一种情况,只需取一个普通切片。第二步是从start
切到列表末尾,并将部分从列表开头追加到end
if start < end:
lst = weekdays[start: end+1]
else:
lst = weekdays[start:] + weekdays[:end+1]
如果开始<结束:
lst=工作日[开始:结束+1]
其他:
lst=工作日[开始:]+工作日[:结束+1]
您可以构建一个所有工作日的列表
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday', 'Sunday']
确定了你的开始和结束日期
startDate, endDate = 'Wednesday', 'Tuesday'
您可以在工作日
列表中找到他们的位置
start = weekdays.index(startDate)
end = weekdays.index(endDate)
有两种可能的情况start
和start>end
。对于第一种情况,只需取一个普通切片。第二步是从start
切到列表末尾,并将部分从列表开头追加到end
if start < end:
lst = weekdays[start: end+1]
else:
lst = weekdays[start:] + weekdays[:end+1]
如果开始<结束:
lst=工作日[开始:结束+1]
其他:
lst=工作日[开始:]+工作日[:结束+1]
您也可以使用itertools
中的循环
:
from itertools import cycle
startDate, endDate = 'Wednesday', 'Tuesday'
l = []
for c in cycle(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']):
if not l and c == startDate:
l.append(c)
elif l and c == endDate:
l.append(c)
break
elif l:
l.append(c)
print(l)
印刷品:
['Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Tuesday']
您还可以使用
itertools
中的cycle
:
from itertools import cycle
startDate, endDate = 'Wednesday', 'Tuesday'
l = []
for c in cycle(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']):
if not l and c == startDate:
l.append(c)
elif l and c == endDate:
l.append(c)
break
elif l:
l.append(c)
print(l)
印刷品:
['Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Tuesday']
通过查找
开始日期的索引和开始日期之后第一次出现的结束日期的索引,您可以使用表示两周的列表来完成此操作:
startDate="Wednesday"
endDate="Tuesday"
通过查找开始日期的索引和开始日期之后第一次出现的结束日期的索引,您可以使用表示两周的列表来完成此操作:
startDate="Wednesday"
endDate="Tuesday"
如果endDate是星期五怎么办?如果endDate是星期五怎么办?