holidays-ru 0.1.2

A library for determining working days, weekends, and holidays in Russia.
Documentation
use crate::data::{YearFact, months};

/// Официальный производственный календарь на 2024 год.
///
/// На основе Постановления Правительства РФ от 10.08.2023 № 1314
/// "О переносе выходных дней в 2024 году".
pub(crate) const Y2024: YearFact = YearFact {
    holidays: months! {
        Jan: [1, 2, 3, 4, 5, 6, 7, 8],  // Новогодние каникулы (1–6,8) + Рождество Христово (7)
        Feb: [23],                         // День защитника Отечества
        Mar: [8],                          // Международный женский день
        May: [1, 9],                       // Праздник Весны и Труда (1), День Победы (9)
        Jun: [12],                         // День России
        Nov: [4],                          // День народного единства
    },

    // Дополнительные выходные: 29-30 апр, 10 мая, 30-31 дек
    extra_days_off: months! {
        Apr: [29, 30],
        May: [10],
        Dec: [30, 31],
    },

    // Рабочие субботы: 27 апр, 2 ноя, 28 дек
    working_days: months! {
        Apr: [27],
        Nov: [2],
        Dec: [28],
    },

    // Сокращённые дни: последний рабочий день перед праздником
    short_days: months! {
        Feb: [22],  // чт перед 23 фев (пт)
        Mar: [7],   // чт перед 8 мар (пт)
        Apr: [27],  // рабочая сб, последний рабочий день перед 1 мая (ср)
        May: [8],   // ср перед 9 мая (чт)
        Jun: [11],  // вт перед 12 июн (ср)
    },

    // Источники (праздники на выходных, рабочие субботы) и цели переносов
    transferred_days: months! {
        Jan: [6, 7],       // источники: 6 янв (сб), 7 янв (вс)
        Apr: [27, 29, 30], // рабочая сб + цели переноса
        May: [10],         // цель переноса с 6 янв
        Nov: [2],          // рабочая сб
        Dec: [28, 30, 31], // рабочая сб + цели переноса
    },
};