Expand description
§holidays-ru
Библиотека для определения рабочих, выходных и праздничных дней в России.
§Основное API
Библиотека предоставляет набор pure-функций, которые по дате возвращают
Resolved<DayFlags> или Resolved<bool>:
ⓘ
use holidays_ru::{flags, is_day_off, Resolved};
use chrono::NaiveDate;
let date = NaiveDate::from_ymd_opt(2026, 1, 9).unwrap();
let result = flags(date);
match result {
Resolved::Fact(flags) => println!("Официально: {flags:?}"),
Resolved::Predict(flags) => println!("Прогноз: {flags:?}"),
}§Без внешних зависимостей (ymd API)
use holidays_ru;
let result = holidays_ru::flags_ymd(2026, 1, 9).unwrap();
if result.value().is_day_off() {
println!("9 января 2026 — выходной день");
}§Поддерживаемые годы
- 1993–2026: официальные данные производственного календаря
(возвращаются как
Resolved::Fact). - 1900–2100 вне диапазона официальных данных: алгоритмический прогноз
на основе ТК РФ (возвращаются как
Resolved::Predict).
§Feature flags
chrono— поддержка [chrono::NaiveDate]time— поддержка [time::Date]serde— сериализацияDayFlagsиResolved<T>
Без фич библиотека работает только через _ymd API.
Structs§
- DayFlags
- Компактное представление свойств дня через битовые флаги.
Enums§
- Resolved
- Результат запроса к календарю: факт или прогноз.
- Work
Week - Норма рабочей недели для расчёта рабочего времени.
Constants§
- FIRST_
FACT_ YEAR - Первый год, для которого есть официальные данные производственного календаря.
- LAST_
FACT_ YEAR - Последний год, для которого есть официальные данные производственного календаря.
- MAX_
YEAR - Максимальный год, принимаемый
_ymdAPI. - MIN_
YEAR - Минимальный год, принимаемый
_ymdAPI.
Functions§
- flags_
ymd - Возвращает
DayFlagsдля даты, заданной годом, месяцем и днём. - is_
day_ off_ ymd - Возвращает
true, если день выходной. - is_
holiday_ ymd - Возвращает
true, если день является федеральным нерабочим праздничным днём. - is_
short_ day_ ymd - Возвращает
true, если день является сокращённым рабочим днём. - is_
transferred_ ymd - Возвращает
true, если день затронут переносом выходного. - is_
weekend_ ymd - Возвращает
true, если день — суббота или воскресенье. - is_
working_ day_ ymd - Возвращает
true, если день рабочий. - non_
working_ days_ between_ ymd - Считает нерабочие дни в полуоткрытом диапазоне дат
[start, end). - working_
hours_ between_ ymd - Считает рабочее время в часах в полуоткрытом диапазоне дат
[start, end). - working_
minutes_ between_ ymd - Считает рабочее время в минутах в полуоткрытом диапазоне дат
[start, end).