joaosalless / holidays-br
Joaosalless/Holidays-BR provides a simple class to get holidays for a specified country, state and city
Requires
- php: >=7.0
- ext-calendar: *
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-11-05 16:57:36 UTC
README
[DEPRECATED]
Esta biblioteca será descontinuada. Utilize a minha outra biblioteca [https://github.com/joaosalless/dates] que possui feriados nacionais, estaduais e municipais, além de suportar datas comemorativas e cálculo automático de dias úteis e horário de expediente.
Joaosalless/Holiday é uma biblioteca Php que serve para verificar se existem feriados em uma determinada data. A biblioteca conta com todos os feriados nacionais incluindo os feriados de datas variáveis.
Esta biblioteca é modular. Os feriados Estaduais e municipais serão incluídos na medida do possível.
Esta biblioteca foi desenvolvida baseada no projeto https://github.com/checkdomain/Holiday, adaptando-o para suportar também os feriados municipais.
Requirements
Joaosalless/Holidays-BR requires php >= 7.0.
Install
composer require joaosalless/holidays-br
Usage
Para verificar se há feriados em uma determinada data, apenas instancie a classe Util e chame o método 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');
Se você só precisa saber se há um feriado na sua data, também existe um método isHoliday()
.
$util = new \Joaosalless\Holiday\Util(); $holiday = $util->isHoliday('BR', '01.01.2018');
Se você precisa saber todos os feriados para um país, estado ou município específico, você pode instanciar um dos provedores incluídos e chamar o método getHolidaysByYear()
.
Exemplo:
$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", ], ], ]
Contributing
Caso você precise utilizar os feriados específicos de um município que ainda não consta aqui, abra uma issue informando todos os feriados do município solicitado + os feriados do respectivo estado. Farei o possível para incluir os feriados solicitados.
Mas, se você entendeu a lógica utilizada e quiser contribuir diretamente no código, envie seu pull request. Não esqueça de criar os testes unitários para cada provider criado.
Running Tests
Run a php composer.phar install
command in the base directory to install the phpunit
dependency. After that you can simply call vendor/bin/phpunit tests/
to run the test suite.