Функция busdaycalendar
Функция busdaycalendar создаёт объект календаря рабочих дней,
который используется для расчётов дат с учётом выходных и праздничных дней.
Первым параметром передаётся строка с маской выходных дней (по умолчанию '1111100',
где 1 - выходной, 0 - рабочий). Вторым параметром можно передать список праздничных дат.
Функция возвращает объект busdaycalendar, который содержит информацию
о расписании рабочих дней.
Синтаксис
np.busdaycalendar(weekmask='1111100', holidays=None)
Пример
Давайте создадим стандартный календарь рабочих дней (понедельник - пятница):
import numpy as np
calendar = np.busdaycalendar(weekmask='1111100')
print(calendar)
Результат выполнения кода:
<numpy.busdaycalendar object at 0x7f8a1c2b3d90>
Пример
Давайте создадим календарь с выходными в среду и четверг:
import numpy as np
calendar = np.busdaycalendar(weekmask='0011110')
print(calendar.weekmask)
Результат выполнения кода:
[True False False True True True False]
Массив показывает, что выходные дни - среда и четверг (индексы 2 и 3).
Пример
Давайте создадим календарь с учётом праздничных дней:
import numpy as np
holidays = ['2026-01-01', '2026-01-07', '2026-05-09']
calendar = np.busdaycalendar(holidays=holidays)
print(calendar.holidays)
Результат выполнения кода:
['2026-01-01' '2026-01-07' '2026-05-09']
Пример
Давайте используем календарь для проверки рабочего дня:
import numpy as np
holidays = ['2026-01-01']
calendar = np.busdaycalendar(weekmask='1111100', holidays=holidays)
dates = np.array(['2025-12-31', '2026-01-01', '2026-01-02'], dtype='datetime64')
res = np.is_busday(dates, busdaycal=calendar)
print(res)
Результат выполнения кода:
[ True False True]
31 декабря 2025 - рабочий день, 1 января - праздничный, 2 января - рабочий.
Смотрите также
-
функцию
is_busday,
которая проверяет, является ли дата рабочим днём -
функцию
busday_count,
которая подсчитывает количество рабочих дней между датами -
функцию
busday_offset,
которая вычисляет дату, отстоящую на заданное количество рабочих дней -
функцию
datetime_as_string,
которая преобразует даты в строковый формат