holidays-ru 0.1.2

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

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

    extra_days_off: months! {
        Jan: [6, 9],   // переносы с 1 января (вс) → 6 января (пт), с 7 января (сб) → 9 января (пн)
        Mar: [9],      // дополнительный выходной
        Apr: [30],     // дополнительный выходной, компенсирован 28 апреля (сб)
        May: [7, 8],   // дополнительные выходные, компенсированы 5 и 12 мая (сб)
        Jun: [11],     // дополнительный выходной, компенсирован 9 июня (сб)
        Nov: [5],      // дополнительный выходной
        Dec: [31],     // дополнительный выходной, компенсирован 29 декабря (сб)
    },

    working_days: months! {
        Mar: [11],  // рабочее воскресенье
        Apr: [28],  // рабочая суббота
        May: [5, 12],  // рабочие субботы
        Jun: [9],   // рабочая суббота
        Dec: [29],  // рабочая суббота
    },

    short_days: months! {
        Feb: [22],  // перед 23 февраля
        Mar: [7],   // перед 8 марта
        Apr: [28],  // рабочая суббота, короткий день перед 1 мая
        May: [12],  // рабочая суббота, короткий день вместо 8 мая
        Jun: [9],   // рабочая суббота, короткий день перед 12 июня
        Dec: [29],  // рабочая суббота, короткий день вместо 31 декабря
    },

    transferred_days: months! {
        Jan: [1, 6, 7, 9],     // источники и цели переносов
        Mar: [9, 11],          // цель переноса и рабочее воскресенье
        Apr: [28, 30],         // рабочая суббота и цель переноса
        May: [5, 7, 8, 12],    // рабочие субботы и цели переносов
        Jun: [9, 11],          // рабочая суббота и цель переноса
        Nov: [4, 5],           // источник и цель переноса
        Dec: [29, 31],         // рабочая суббота и цель переноса
    },
};