joaosalless/holidays-br

Joaosalless/Holidays-BR 提供了一个简单的类,用于获取指定国家、州和城市的假日

1.0.0 2017-07-11 08:51 UTC

This package is auto-updated.

Last update: 2024-09-05 16:39:43 UTC


README

[已弃用]

这个库将不再维护。请使用我的另一个库 [https://github.com/joaosalless/dates],它包含国家级、州级和市级假日,还支持纪念日和自动计算工作日和营业时间。

Joaosalless/Holiday 是一个 PHP 库,用于检查特定日期是否存在假日。该库包含所有国家级假日,包括可变日期的假日。

该库是模块化的。在可能的情况下,将包括州级和市级假日。

该库是基于项目 https://github.com/checkdomain/Holiday 开发的,并进行了修改以支持市级假日。

要求

Joaosalless/Holidays-BR 需要 php >= 7.0。

安装

composer require joaosalless/holidays-br

使用

要检查特定日期是否存在假日,只需实例化 Util 类并调用 getHoliday() 方法。

$util    = new \Joaosalless\Holiday\Util();

// Feriado nacional
$holiday = $util->getHoliday('BR', '01.01.2017');

// Feriado estadual
$holiday = $util->getHoliday('BR', '09.07.2017', 'SP');

// Feriado municipal
$holiday = $util->getHoliday('BR', '25.01.2017', 'SP', '3550308');

如果您只需要知道您的日期是否存在假日,还有一个 isHoliday() 方法。

$util    = new \Joaosalless\Holiday\Util();
$holiday = $util->isHoliday('BR', '01.01.2018');

如果您需要知道特定国家、州或市的所有假日,可以实例化其中一个提供程序并调用 getHolidaysByYear() 方法。

示例

$util     = new \Joaosalless\Holiday\Util();

// Lista todos os feriados nacionais, estaduais e municipais (São Paulo - SP)
$provider = $util->getProvider('BR', 'SP', '3550308');
$holidays = $provider->getHolidaysByYear(2018);

// Retorna o array de feriados:
[
    "01-01" => [
        "name"   => "Dia Mundial da Paz",
        "states" => null,
        "cities" => null,
    ],
    "04-21" => [
        "name"   => "Tiradentes",
        "states" => null,
        "cities" => null,
    ],
    "05-01" => [
        "name"   => "Dia do Trabalhador",
        "states" => null,
        "cities" => null,
    ],
    "09-07" => [
        "name"   => "Independência do Brasil",
        "states" => null,
        "cities" => null,
    ],
    "10-12" => [
        "name"   => "Nossa Senhora Aparecida",
        "states" => null,
        "cities" => null,
    ],
    "11-02" => [
        "name"   => "Finados",
        "states" => null,
        "cities" => null,
    ],
    "11-15" => [
        "name"   => "Proclamação da República",
        "states" => null,
        "cities" => null,
    ],
    "12-25" => [
        "name"   => "Natal",
        "states" => null,
        "cities" => null,
    ],
    "02-11" => [
        "name"   => "Domingo de Carnaval",
        "states" => null,
        "cities" => null,
    ],
    "02-13" => [
        "name"   => "Terça-feira de Carnaval",
        "states" => null,
        "cities" => null,
    ],
    "02-14" => [
        "name"   => "Quarta-feira de Cinzas",
        "states" => null,
        "cities" => null,
    ],
    "03-30" => [
        "name"   => "Paixão de Cristo",
        "states" => null,
        "cities" => null,
    ],
    "03-31" => [
        "name"   => "Sábado de Aleluia",
        "states" => null,
        "cities" => null,
    ],
    "04-01" => [
        "name"   => "Domingo de Páscoa",
        "states" => null,
        "cities" => null,
    ],
    "05-31" => [
        "name"   => "Corpus Christi",
        "states" => null,
        "cities" => null,
    ],
    "07-09" => [
        "name"   => "Revolução Constitucionalista de 1932",
        "states" => [
            "SP",
        ],
        "cities" => null,
    ],
    "01-25" => [
        "name"   => "Aniversário de São Paulo",
        "states" => null,
        "cities" => [
            "3550308",
        ],
    ],
    "11-20" => [
        "name"   => "Consciência Negra",
        "states" => null,
        "cities" => [
            "3550308",
        ],
    ],
]

贡献

如果您需要使用尚未在此列出的市的特定假日,请创建一个 issue,说明该市的所有假日以及相应州的假日。我将尽可能包括所要求的假日。

但是,如果您理解了使用的逻辑并希望直接在代码中贡献力量,请发送您的 pull request。不要忘记为每个创建的提供程序创建单元测试。

运行测试

在基本目录中运行 php composer.phar install 命令以安装 phpunit 依赖项。之后,您可以直接调用 vendor/bin/phpunit tests/ 来运行测试套件。