Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python获取一周中两天之间的日期_Python_Date_Beautifulsoup - Fatal编程技术网

使用Python获取一周中两天之间的日期

使用Python获取一周中两天之间的日期,python,date,beautifulsoup,Python,Date,Beautifulsoup,我正在使用python和beautifulSoup解析一个html文档,在这里我得到以下格式的字符串,即workingdates='周三-周二' 从那一刻起,我得到了startDate='星期三'和endDate='星期二' 我想创建一个包含所有工作日的列表,即list=[“周三”、“周四”、“周五”、“周六”、“周日”、“周一”、“周二”] 有什么想法吗?你可以构建一个所有工作日的列表 weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursda

我正在使用python和beautifulSoup解析一个html文档,在这里我得到以下格式的字符串,即
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是星期五怎么办?