leitura de 2 min
Encontrou um problema no conteúdo? Por favor, deixe seu comentário!

Opa opa!

Hoje vou ajudar vocês a criar uma funçãozinha que calcula o próximo dia útil de uma data caso ela caia em um fim de semana…

A lógica do algoritmo dessa função é bem simples:

Algoritmo de calculo do próximo dia útil de uma data Recebe a data; Se (a data for sábado ou domingo) então ......Retorne a próxima segunda-feira; Senão ......Retorne a data; FimSe Fim Quando passamos isso pro PHP podemos fazer de uma forma bem simples:

<?php
/**
* Função para calcular o próximo dia útil de uma data
* Formato de entrada da $data: AAAA-MM-DD
*/
function proximoDiaUtil($data, $saida = 'd/m/Y') {
// Converte $data em um UNIX TIMESTAMP
$timestamp = strtotime($data);
// Calcula qual o dia da semana de $data
// O resultado será um valor numérico:
// 1 -> Segunda ... 7 -> Domingo
$dia = date('N', $timestamp);
// Se for sábado (6) ou domingo (7), calcula a próxima segunda-feira
if ($dia >= 6) {
$timestamp_final = $timestamp + ((8 - $dia) * 3600 * 24);
} else {
// Não é sábado nem domingo, mantém a data de entrada
$timestamp_final = $timestamp;
}
return date($saida, $timestamp_final);
}
view raw snippet.php hosted with ❤ by GitHub
Com essa função você tem um meio rápido de calcular o próximo dia útil de uma data no formato AAAA-MM-DD  (primeiro argumento) e retorná-la no formato que preferir (segundo argumento). Você poderia usá-la da seguinte forma:
<?php
// Dia 05 de abril de 2009 é um domingo
$data = '2009-04-05';
// Calcula o próximo dia útil
$data_final = proximoDiaUtil($data);
// Resultado: 06/04/2009
// Calcula o próximo dia útil usando uma formatação de saída
$data_final = proximoDiaUtil($data, 'Y-m-d');
// Resultado: 2009-04-06
// Dia 08 de abril de 2009 é uma quarta-feira
$data = '2009-04-08';
// Calcula o próximo dia útil
$data_final = proximoDiaUtil($data);
// Resultado: 08/04/2009
view raw snippet.php hosted with ❤ by GitHub
Com isso você pode fazer aquele sistema financeiro funcionar melhor e não sair cobrando as pessoas em pleno sabadão. :) Até a próxima!

Thiago Belem / Blog

Thiago Belem


Publicado

Thiago Belem / Blog

Thiago Belem / Blog

Artigos e tutoriais sobre desenvolvimento WEB

Continue lendo