Вам нужно создать свой Производственный календарь.
Производственный календарь – это специальный календарь, который составлен с учетом праздников и выходных дней на текущий год. Он составляется на основе постановлений правительства Российской Федерации. На основании этого календаря специалисты кадровых служб составляют рабочие графики, определяют число рабочих часов за месяц и начисляют заработную плату. Производственный календарь показывает достоверную и точную информацию о том, какие дни являются выходными, праздничными, либо сокращенными рабочими.
Данные можно хранить в базе данных в виде таблицы
holidays (Календарь праздничных и переносимых дней).
Пример. Чтобы не придумывать велосипед и каждый раз вбивать эти дни, то в интернете есть много решений, которые предоставляют эти данные:
- Открытые данные России. Скачиваете последнюю версию, пишите свой конвектор, записываете к себе в базу. Имеется готовый парсер.
- isDayOff() - публичный api по Производственному календарю. Вы можете передать дату и получить всю информацию. Пример: Получение данных за год.
- Xmlcalendar - Производственный календарь в виде XML. Имеется готовый парсер 1 и парсер 2.
- Консультант плюс - Производственный календарь. Имеется готовый парсер 1, парсер 2 и парсер 3.
В конечном итоге, на основе этих данных вы можете выводить: календарь, статистику и информацию о нерабочих днях, основываясь на ваших данных.
Пример. А так же применять различные фильтры и выборку дней.