holidays-ru 0.1.2

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

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

    // Дополнительные выходные: 2,8 мая, 13 июн, 3 ноя, 31 дек
    extra_days_off: months! {
        May: [2, 8],
        Jun: [13],
        Nov: [3],
        Dec: [31],
    },

    // Рабочие субботы: 1 ноя
    working_days: months! {
        Nov: [1],
    },

    // Сокращённые дни: последний рабочий день перед праздником
    short_days: months! {
        Mar: [7],   // пт перед 8 мар (сб)
        Apr: [30],  // ср перед 1 мая (чт)
        Jun: [11],  // ср перед 12 июн (чт)
        Nov: [1],   // рабочая сб перед 4 ноя (вт, 3 ноя — доп. выходной)
    },

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