0

Contar dias uteis em um intervalo de data

criado por fitinge em 07/10/2004 7:46am
Fiz esse script para um sistema de Controle de Entrada e Saída de uma assistência técnica. Você pega a data de entrada e saída em UNIX_TIMESTAMP e joga na função! Ela retornara o número de dias corridos, número de dias uteis, número de dias não uteis, horas, minutos e segundos entre essas 2 datas!
Lembrando que fiz ele contar como dia não util sabados, domingos e feriados, onde os feriados são cadastrados em um banco de dados o dia e mes do feriado!
Funciona para 1 mês como para vários anos!!!
Data Autor Changelog Download
07/10/2004 7:46am fitinge - Versão 1.0
08/07/2005 9:01am Ivan Versão 2 Versão 2
24/04/2006 11:46am Ivan Versão 3 Versão 3

Comentários:

Mostrando 1 - 4 de 4 comentários
Olá, acredito que esta função é um pouco mais simples :

function dias_uteis($data_ini, $data_fin) {
$dias = number_format((($data_fin- $data_ini)/86400),0);
$naoutil = 0;
while( $data_ini < $data_fin ) {
if ( (date("w",$data_ini) == 0) || (date("w",$data_ini) == 6) )
$naoutil++;
$data_ini += 86400;
}

return $dias - $naoutil;
}
10/03/2006 12:11pm (~10 anos atrás)

Gostaria de saber o porque da divisão pelo número 86400 ?

$dias = floor((strtotime($dtf) - strtotime($dti))/ 86400);
17/11/2005 5:37am (~11 anos atrás)

Bruno Ducraux disse:
para saber se é sabado e domingo voce teria que fazer +- assim:

$p2=explode("/","dia/mes/ano");
$cont_dia = mktime(0,0,0,$p2[1],$p2[0],$p2[2]);
$dia_semana = date("l",$cont_dia);
//Agora basta checar o dia da semana
if ($dia_semana == "Saturday" or $dia_semana == "Sunday"){
//coloca a acao que voce deseja se for sabado ou domingo
}

Para o feriado voce teria que fazer uma tabela no banco de dados para inserir os feriados e checar nessa tabela se o dia em questao é feriado ou não.

Espero ter ajudado...
27/09/2005 12:21pm (~11 anos atrás)

Everton Gish disse:
Opa, uma ajufa por favor....
Seguinte: Estou desenvolvendo uma folha de ponto aqui para a empresa...Como eu faço um script para identificar automaticamente as feriados , sabados e domingos d cada mes? para que o servidor nao assine o dia errado? Desde já, agradeço pela ajuda.
07/03/2005 2:41pm (~11 anos atrás)

Novo Comentário:

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