holidays-ru 0.1.2

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

/// Официальный производственный календарь на 2005 год.
///
/// На основе Федерального закона № 201-ФЗ от 29.12.2004,
/// Постановлений Правительства РФ № 845 от 27.12.2004 и № 262 от 28.04.2005.
pub(crate) const Y2005: 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],                   // День народного единства
    },

    // Автоматические переносы: 1,2 янв (сб,вс) → 6,10 янв; 1 мая (вс) → 2 мая; 12 июн (вс) → 13 июн
    // Постановление № 845: 5 мар (сб) → 7 мар (пн)
    // Постановление № 262: 14 мая (сб) → 10 мая (вт)
    extra_days_off: months! {
        Jan: [6, 10],
        Mar: [7],
        May: [2, 10],
        Jun: [13],
    },

    // Рабочие субботы: 5 мар (№ 845), 14 мая (№ 262)
    working_days: months! {
        Mar: [5],
        May: [14],
    },

    // Сокращённые дни: 22 фев, 5 мар (рабочая сб), 3 ноя
    short_days: months! {
        Feb: [22],  // перед 23 фев
        Mar: [5],   // рабочая суббота, короткий день
        Nov: [3],   // перед 4 ноя
    },

    // Источники и цели переносов
    transferred_days: months! {
        Jan: [1, 2, 6, 10],   // источники: 1 янв (сб), 2 янв (вс) + цели 6,10 янв
        Mar: [5, 7],          // рабочая сб + цель переноса
        May: [1, 2, 10, 14],  // источник 1 мая (вс), цель 2 мая, цель 10 мая, рабочая сб 14 мая
        Jun: [12, 13],        // источник: 12 июн (вс) + цель 13 июн
    },
};