holidays-ru 0.1.2

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

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

    // Переносы по Постановлению № 784:
    // 4 янв (сб) → 3 янв (пт); 5 янв (вс) → 6 янв (пн); 21 июн (сб) → 13 июн (пт)
    // Автоматические: 23 фев (вс) → 24 фев (пн); 8 мар (сб) → 10 мар (пн)
    extra_days_off: months! {
        Jan: [3, 6],
        Feb: [24],
        Mar: [10],
        Jun: [13],
    },

    // Рабочие дни-источники переносов: 4,5 янв, 21 июн
    working_days: months! {
        Jan: [4, 5],
        Jun: [21],
    },

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

    // Источники и цели переносов
    transferred_days: months! {
        Jan: [3, 4, 5, 6],  // цели 3,6 янв + источники 4,5 янв
        Feb: [23, 24],      // источник 23 фев (вс) + цель 24 фев
        Mar: [8, 10],       // источник 8 мар (сб) + цель 10 мар
        Jun: [13, 21],      // цель 13 июн + рабочая сб 21 июн
    },
};