Вы можете преобразовать объект datetime с помощью strptime
. Отсюда вы можете использовать метод weekdays
.
Однако ваши условия неточны, если вы хотите только с понедельника по пятницу. Обратите внимание, что weekday
возвращает целое число от 0 до 6 с понедельника быть 0 и воскресенье будучи 6.
Вернуть день недели как целое число, где понедельник является 0 и воскресенье 6.
Это означает, что вы хотите проверить, является ли возвращаемое значение 5
или 6
.
Условное, что у вас есть, не будет работать по другой причине.
if some_datetime_object.datetime.weekday() != 6 or 1:
Это говорит, что в будний день НЕ В воскресенье ИЛИ ИСТИНА. Вы коротко замыкаете свое условное и вынуждаете все быть True
. Вы должны сделать это что-то вроде этого (с соответствующими значениями скорректированных)
if some_datetime_object.datetime.weekday() != 6 and some_datetime_object.datetime.weekday() != 1:
Я сделал это по-разному в коде ниже, используя not in
if datetime.datetime.strptime(d, '%Y%m%d').weekday() not in (5,6):
import datetime
dates = [
"20150801",
"20150802",
"20150803",
"20150804",
"20150805",
"20150806",
"20150807",
"20150808",
"20150809",
]
for d in dates:
if datetime.datetime.strptime(d, '%Y%m%d').weekday() not in (5,6):
print d
Этот выходы:
20150803
20150804
20150805
20150806
20150807
'if some_datetime_object.datetime.weekday()! = 6 или 1' не делает то, что, по вашему мнению, делает – CoryKramer