Skip to content

gs-nasc/BrazilHoliday

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d8e61bb · Dec 22, 2021

History

22 Commits
Jan 27, 2021
Oct 28, 2021
Jan 26, 2021
Jan 26, 2021
Jan 26, 2021
Dec 22, 2021
Jan 26, 2021

Repository files navigation

Brazil Holiday

Brazil Holiday é uma biblioteca PHP que diz se um dia é ou não feriado, por enquanto temos só os feriados mais importantes mas estamos em constante atualização e sempre adicionando novos feriados!

Bugs Code Smells Maintainability Rating Security Rating Reliability Rating

Começando

Instalando

A biblioteca pode ser instalada pelo composer (e é o mais recomendado), o comando para instalar é este abaixo:

composer require gs-nasc/brazil-holiday

via Packagist

Implementando

A biblioteca é de fácil implementação e utilização abaixo estão códigos de exemplo:
Obs. lembre-se de carregar o autoload do composer

Qualquer data

use BrazilHoliday\Holiday;

$holiday = new Holiday();

// Aqui carregamos o ano que vamos usar para encontrarmos o feriado
// Somente feriados que não são dias úteis (Ex: Natal)
$holiday->load(2021);

// Todos os feriados ( Ex: Dia da Bandeira )
$holiday->load(2021, "all");

// troque 2021 pelo ano que irá utilizar

// No lugar de 01/01/2021 coloque a data que você quer 
//saber se é feriado, siga o padrão que está ali!
$date = DateTime::createFromFormat('d/m/Y', '01/01/2021');

// Finalmente verificamos se é ou não feriado
$feriado = $holiday->isHoliday($date);

echo  ($feriado) ? "Feriado " . $feriado->title : "Não é feriado";

// OU

if($feriado) {
    $foo = "Feriado " . $feriado->title;
}else{
    $foo = "Não é feriado";
}


echo $foo;

Hoje

use BrazilHoliday\Holiday;

$holiday = new Holiday();

// Aqui carregamos o ano que vamos usar para encontrarmos o feriado
// Somente feriados que não são dias úteis (Ex: Natal)
$holiday->load(2021);

// Todos os feriados ( Ex: Dia da Bandeira )
$holiday->load(2021, "all");

// troque 2021 pelo ano que irá utilizar

// Finalmente verificamos se é ou não feriado
$feriado = $holiday->todayHoliday();

echo  ($feriado) ? "Feriado " . $feriado->title : "Não é feriado";

// OU

if($feriado) {
    $foo = "Feriado " . $feriado->title;
}else{
    $foo = "Não é feriado";
}


echo $foo;

Amanhã

use BrazilHoliday\Holiday;

$holiday = new Holiday();

// Aqui carregamos o ano que vamos usar para encontrarmos o feriado
// Somente feriados que não são dias úteis (Ex: Natal)
$holiday->load(2021);

// Todos os feriados ( Ex: Dia da Bandeira )
$holiday->load(2021, "all");

// troque 2021 pelo ano que irá utilizar

// Finalmente verificamos se é ou não feriado
$feriado = $holiday->tomorrowHoliday();

echo  ($feriado) ? "Feriado " . $feriado->title : "Não é feriado";

// OU

if($feriado) {
    $foo = "Feriado " . $feriado->title;
}else{
    $foo = "Não é feriado";
}


echo $foo;

Ontem

use BrazilHoliday\Holiday;

$holiday = new Holiday();

// Aqui carregamos o ano que vamos usar para encontrarmos o feriado
// Somente feriados que não são dias úteis (Ex: Natal)
$holiday->load(2021);

// Todos os feriados ( Ex: Dia da Bandeira )
$holiday->load(2021, "all");

// troque 2021 pelo ano que irá utilizar

// Finalmente verificamos se é ou não feriado
$feriado = $holiday->yesterdayHoliday();

echo  ($feriado) ? "Feriado " . $feriado->title : "Não é feriado";

// OU

if($feriado) {
    $foo = "Feriado " . $feriado->title;
}else{
    $foo = "Não é feriado";
}


echo $foo;

Quando é feriado a biblioteca retorna um objeto com os seguintes atributos:

  • title (Título do feriado. Ex: Ano Novo)
  • date (Data do feriado. Ex: 01/01/2021)
  • type (Tipo do feriado. Ex: Feriado Nacional)

Quando não é feriado a biblioteca retorna false

Como ajudar?

Se você está sentindo falta de algum feriado ou quer arrumar algum bug que encontrou siga os passos abaixo:

Adicionar novo feriado

Feriado Fixo

Para adicionar um novo feriado fixo (Ex: Natal) é só fazer um fork deste respositório e editar o arquivo dates.json que se econtra na pasta src/ seguindo seus padrões, quando terminar é só fazer um Pull Request que eu analizarei o pedido e caso se enquadre na Biblioteca adicionarei no projeto.

Feriado Móvel

Para adicionar um novo feriado móvel basta abrir uma Issue dizendo qual o feriado que eu buscarei um método de adiciona-lo no projeto

Arrumar Bug

Caso queira arrumar algum bug é só fazer fork do projeto, arrumar o bug e fazer testes para ver se tudo continua funcionando, caso tudo funcione fazer um Pull Request para ser implementado.

Tabela de Feriados Disponíveis

Status
Ano Novo ✔️
Dia Internacional da Mulher ✔️
Dia da Mentira ✔️
Dia do Índio ✔️
Tiradentes ✔️
Descobrimento do Brasil ✔️
Dia do Trabalhador ✔️
Dia da Abolição da Escravatura ✔️
Dia Mundial do Meio Ambiente ✔️
Dia dos Namorados ✔️
Dia de São João ✔️
Dia do Amigo ✔️
Dia dos Avós ✔️
Dia do Estudante ✔️
Dia do Folclore ✔️
Dia do Soldado ✔️
Independência do Brasil ✔️
Dia da Árvore ✔️
Dia Internacional da Paz ✔️
Dia das Crianças ✔️
Nossa Senhora Aparecida ✔️
Dia do Professor ✔️
Dia Nacional do Livro ✔️
Halloween ✔️
Finados ✔️
Proclamação da República ✔️
Dia da Bandeira ✔️
Dia Nacional da Consciência Negra ✔️
Dia Internacional dos Direitos Humanos ✔️
Véspera de Natal ✔️
Natal ✔️
Véspera de Ano Novo ✔️
Carnaval ✔️
Páscoa ✔️
Sexta-Feira Santa ✔️
Corpus Christ ✔️
Dia da Mães ✔️
Dia dos Pais ✔️
Dia do Servidor Público ✔️