GOOGLE ADS

среда, 4 мая 2022 г.

Добавьте n рабочих дней к заданной дате, игнорируя праздники и выходные в python

Я пытаюсь добавить n (целых) рабочих дней к заданной дате, добавление даты должно избегать праздников и выходных (это не входит в рабочие дни)


Решение проблемы

Пропустить выходные было бы довольно легко, сделав что-то вроде этого:

import datetime
def date_by_adding_business_days(from_date, add_days):
business_days_to_add = add_days
current_date = from_date
while business_days_to_add > 0:
current_date += datetime.timedelta(days=1)
weekday = current_date.weekday()
if weekday >= 5: # sunday = 6
continue
business_days_to_add -= 1
return current_date
#demo:
print '10 business days from today:'
print date_by_adding_business_days(datetime.date.today(), 10)

Проблема с праздниками заключается в том, что они сильно различаются в зависимости от страны или даже региона, религии и т. д. Вам понадобится список/набор праздников для вашего варианта использования, а затем пропустите их аналогичным образом. Отправной точкой может быть лента календаря, которую Apple публикует для iCal (в формате ics), для США — http://files.apple.com/calendars/US32Holidays.ics.

Вы можете использовать модуль icalendar для анализа этого.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...