+1

Contar o número de dias úteis entre duas datas

criado por Marcos Regis em 27/06/2007 4:57pm
Função que passado uma data conta quantos dias úteis faltam (para datas no futuro) ou se passaram (datas no passado) para o dia de hoje.
Se for passado o segundo parâmetro, calcula a diferença entre as duas data.
Data Autor Changelog Download
27/06/2007 4:57pm Marcos Regis - Versão 0.1
01/03/2010 11:17pm Marcos Regis Versão 1.0.0 Versão 1.0.0
19/04/2011 3:45pm Marcos Regis Versão 1.0.1 Versão 1.0.1

Comentários:

Mostrando 1 - 4 de 4 comentários
Bruno Porto disse:
Desculpa.. não é parseInt mas sim intVal hehe
04/08/2015 8:23am (~1 ano atrás)

Bruno Porto disse:
Fiz uma modificação para considerar o uso do SÁBADO e também adicionar numeros de feriados na data para subtração.


/**
* Calcula a quantidade de dias úteis entre duas datas (sem contar feriados)
* @author Marcos Regis
* @param String $datainicial
* @param [String $datafinal=null]
* @param [Boolean $sabado=false] considerar sabado como dia útil?
* @param [Integer $feriados=0] Numero de dias (feriados) a serem subtraidos
* @return int Quantidade de dias úteis
*/
function dias_uteis($datainicial,$datafinal=null,$sabado=false,$feriados=0){
if (!isset($datainicial)) return false;
if (!is_numeric($feriados)) $feriados=0;
$segundos_datainicial = strtotime(str_replace("/","-",$datainicial));
if (!isset($datafinal)) $segundos_datafinal=time();
else $segundos_datafinal = strtotime(str_replace("/","-",$datafinal));
$dias = abs(floor(floor(($segundos_datafinal-$segundos_datainicial)/3600)/24 ) );
$uteis=0;
for($i=1;$i<=$dias;$i++)
{
$diai = $segundos_datainicial+($i*3600*24);
$w = date('w',$diai);
if ($w>0 && (($sabado==true && $w<=6) || $w<6)){ $uteis++; } //INCLUI SÁBADO
}
return ($uteis - parseInt($feriados));
}
04/08/2015 8:23am (~1 ano atrás)

Marcos Regis disse:
Obrigado Paulo por ter informado. O Bug já foi corrigido.
19/04/2011 3:46pm (~5 anos atrás)

Paulo Souza disse:
Há um probleminha onde a variável $uteis é incrementada, ele faz isso duas vezes e os dias ficam errados.
19/04/2011 2:57pm (~5 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)