holidays-ru 0.1.2

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

/// Официальный производственный календарь на 2008 год.
///
/// На основе Постановления Правительства РФ № 512 от 11.08.2007.
pub(crate) const Y2008: 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],                   // День народного единства
    },

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

    // Рабочие дни: 4 мая (вс), 7 июн (сб), 1 ноя (сб) — переносы по Постановлению № 512
    working_days: months! {
        May: [4],
        Jun: [7],
        Nov: [1],
    },

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

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