holidays-ru 0.1.2

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

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

    // Автоматические переносы: 3,4 янв (сб,вс) → 6,8 янв; 8 мар (вс) → 9 мар; 9 мая (сб) → 11 мая
    // Постановление № 877: 11 янв (вс) → 9 янв (пт)
    extra_days_off: months! {
        Jan: [6, 8, 9],
        Mar: [9],
        May: [11],
    },

    // Рабочие дни: 11 янв (вс) — перенос по Постановлению № 877
    working_days: months! {
        Jan: [11],
    },

    // Сокращённые дни: 30 апр, 8 мая, 11 июн, 3 ноя, 31 дек
    short_days: months! {
        Apr: [30],  // чт перед 1 мая (пт)
        May: [8],   // пт перед 9 мая (сб)
        Jun: [11],  // чт перед 12 июн (пт)
        Nov: [3],   // вт перед 4 ноя (ср)
        Dec: [31],  // чт перед 1 янв 2010 (пт)
    },

    // Источники и цели переносов
    transferred_days: months! {
        Jan: [3, 4, 6, 8, 9, 11],  // источники: 3,4 янв (сб,вс), 11 янв (вс) + цели: 6,8,9 янв
        Mar: [8, 9],                // источник: 8 мар (вс) + цель 9 мар
        May: [9, 11],               // источник: 9 мая (сб) + цель 11 мая
    },
};