Date-Holidays-RU

 view release on metacpan or  search on metacpan

lib/Date/Holidays/RU.pm  view on Meta::CPAN

package Date::Holidays::RU;
$Date::Holidays::RU::VERSION = '1.2025.0';
# ABSTRACT: Determine Russian Federation official holidays and business days.


use warnings;
use strict;
use utf8;
use base 'Exporter';

our @EXPORT_OK = qw(
    is_holiday
    is_ru_holiday
    holidays
    is_business_day
    is_short_business_day
);

use Carp;
use Time::Piece;
use List::Util qw/ first /;


my $HOLIDAYS_VALID_SINCE = 1991;
#my $BUSINESS_DAYS_VALID_SINCE = 2004;

# sources:
#   http://www.consultant.ru/law/ref/calendar/proizvodstvennye/
#   http://ru.wikipedia.org/wiki/История_праздников_России
#   http://www.consultant.ru/popular/kzot/54_6.html#p530
#   http://www.consultant.ru/document/cons_doc_LAW_127924/?frame=17#p1681

my @REGULAR_HOLIDAYS = (
    {
        name => {
            1948 => 'Новый год',
            2005 => 'Новогодние каникулы',
        },
        days => {
            1948 => '0101',
            1992 => [ qw( 0101 0102 ) ],
            2005 => [ qw( 0101 0102 0103 0104 0105 ) ],
            2013 => [ qw( 0101 0102 0103 0104 0105 0106 0108 ) ],
        },
    },
    {
        name => 'Рождество Христово',
        days => {
            1991 => '0107', # maybe 1992
        },
    },
    {
        name => 'День защитника Отечества',
        days => {
            2002 => '0223',
        },
    },
    {
        name => 'Международный женский день',
        days => {
            1966 => '0308',
        }
    },
    {
        name => {
            1965 => 'День международной солидарности трудящихся',
            1992 => 'Праздник Весны и Труда',
        },
        days => {
            1965 => [ qw( 0501 0502 ) ],
            2005 => '0501',
        },
    },
    {
        name => 'День Победы',
        days => {
            1965 => '0509',
        },
    },
    {
        name => {
            1992 => 'День принятия декларации о государственном суверенитете Российской Федерации',
            2002 => 'День России',
        },
        days => {
            1992 => '0612',
        },
    },



( run in 3.332 seconds using v1.01-cache-2.11-cpan-d7f47b0818f )