Новый в предыдущий рабочий день в Python

Я должен вычесть рабочие дни из текущей даты.

У меня в настоящее время есть некоторый код, который должен всегда работать на новом рабочем дне. Таким образом, это может быть сегодня, если мы с понедельника по пятницу, но если это - суббота, или в воскресенье затем я должен задержать его к пятнице перед выходными. У меня в настоящее время есть некоторый довольно неуклюжий код, чтобы сделать это:

 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 работать в рабочие дни, а не календарные дни, например?

66
задан smci 13 August 2018 в 06:05
поделиться

1 ответ

Кажется, есть несколько вариантов, если вы готовы установить дополнительные библиотеки.

В этом сообщении описывается способ определения рабочих дней с помощью dateutil .

http://coding.derkeiler.com/Archive/Python/comp.lang.python/2004-09/3758.html

BusinessHours позволяет настраивать список праздников и т. Д., Чтобы определить, когда ваши рабочие часы (и, соответственно, рабочие дни) равны.

http://pypi.python.org/pypi/BusinessHours/

13
ответ дан 24 November 2019 в 14:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: