NAME

Date::Holidays::BY - Determine Belorussian official holidays and business days.

SYNOPSIS

    use Date::Holidays::BY qw( is_holiday holidays is_business_day );

    my ( $year, $month, $day ) = ( localtime )[ 5, 4, 3 ];
    $year  += 1900;
    $month += 1;

    if ( my $holidayname = is_holiday( $year, $month, $day ) ) {
        print "Today is a holiday: $holidayname\n";
    }

    my $ref = holidays( $year );
    while ( my ( $md, $name ) = each %$ref ) {
        print "On $md there is a holiday named $name\n";
    }

    if ( is_business_day( 2012, 03, 11 ) ) {
        print "2012-03-11 is business day on weekend\n";
    }

    if ( is_short_business_day( 2015, 04, 30 ) ) {
        print "2015-04-30 is short business day\n";
    }

    $Date::Holidays::BY::strict=1;
    # here we die because time outside from $HOLIDAYS_VALID_SINCE to $INACCURATE_TIMES_SINCE
    holidays( 9001 );

$Date::Holidays::BY::HOLIDAYS_VALID_SINCE, $Date::Holidays::BY::INACCURATE_TIMES_SINCE

HOLIDAYS_VALID_SINCE before this year package doesn't matter INACCURATE_TIMES_SINCE after this year dates of holidays and working day shift are not accurate, but you can most likely be sure of historical holidays

$Date::Holidays::BY::strict

Allows you to return an error if the requested date is outside the determined times. Default is 0.

is_holiday( $year, $month, $day )

Determine whether this date is a BY holiday. Returns holiday name or undef.

is_by_holiday( $year, $month, $day )

Alias for is_holiday().

holidays( $year )

Returns hash ref of all BY holidays in the year.

is_business_day( $year, $month, $day )

Returns true if date is a business day in BY taking holidays and weekends into account.

is_short_business_day( $year, $month, $day )

Returns true if date is a shortened business day in BY.

LICENSE

This software is copyright (c) 2019 by Vladimir Varlamov.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

Terms of the Perl programming language system itself

a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License"

AUTHOR

Vladimir Varlamov, <bes.internal@gmail.com>