timeboard
пакет делает это.
Предположим, ваша дата 04 сентября 2017 года. Несмотря на то, что в понедельник в США был выходной (День труда) Итак, последний рабочий день был пятница, 1 сентября.
>>> import timeboard.calendars.US as US
>>> clnd = US.Weekly8x5()
>>> clnd('04 Sep 2017').rollback().to_timestamp().date()
datetime.date(2017, 9, 1)
В Великобритании 04 сентября 2017 года был обычный рабочий день, поэтому самый последний рабочий день был сам по себе.
>>> import timeboard.calendars.UK as UK
>>> clnd = UK.Weekly8x5()
>>> clnd('04 Sep 2017').rollback().to_timestamp().date()
datetime.date(2017, 9, 4)
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я являюсь автором табло.