Я должен вычесть рабочие дни из текущей даты.
У меня в настоящее время есть некоторый код, который должен всегда работать на новом рабочем дне. Таким образом, это может быть сегодня, если мы с понедельника по пятницу, но если это - суббота, или в воскресенье затем я должен задержать его к пятнице перед выходными. У меня в настоящее время есть некоторый довольно неуклюжий код, чтобы сделать это:
lastBusDay = datetime.datetime.today()
if datetime.date.weekday(lastBusDay) == 5: #if it's Saturday
lastBusDay = lastBusDay - datetime.timedelta(days = 1) #then make it Friday
elif datetime.date.weekday(lastBusDay) == 6: #if it's Sunday
lastBusDay = lastBusDay - datetime.timedelta(days = 2); #then make it Friday
Существует ли лучший путь?
Я могу сказать timedelta работать в рабочие дни, а не календарные дни, например?
Кажется, есть несколько вариантов, если вы готовы установить дополнительные библиотеки.
В этом сообщении описывается способ определения рабочих дней с помощью dateutil .
http://coding.derkeiler.com/Archive/Python/comp.lang.python/2004-09/3758.html
BusinessHours позволяет настраивать список праздников и т. Д., Чтобы определить, когда ваши рабочие часы (и, соответственно, рабочие дни) равны.