Diferença entre duas Horas
Script desenvolvido para calcular a diferença entre duas horas distintas.
Data | Autor | Changelog | Download |
---|---|---|---|
24/11/2004 2:09pm | Alcione Ferreira | - | Versão 0.0.1 |
30/11/2004 9:05am | Alcione Ferreira | Versão 0.1.0 | Versão 0.1.0 |
04/12/2004 1:00pm | walter | Versão 10.0 | Versão 10.0 |
12/02/2005 12:46am | walter | Versão 10.0 | Versão 10.0 |
23/03/2005 12:39pm | Alcione Ferreira | Versão 1.0.0 | Versão 1.0.0 |
14/04/2005 9:30am | Cássio H. Jorge | Versão 2.0 | Versão 2.0 |
19/12/2006 5:32am | Paulo | Versão 3.0 | Versão 3.0 |
Olá Alcione,
Essa função está me ajudando muito, mas deparei com uma situação e queria ver se não tinha como você implantar isto, é o seguinte:
- Além de fazer esse cálculo de horas, eu precisava ter algumas horas de desconto e outras de acréscimo, será que teria como fazer algo do tipo :
function Calcula_Dif_Hora($inicio,$fim,$data,$dataf,$dif,$horamenos='00:00',$horamais='00:00')
Onde o cálculo seria o cálculo como está sendo que subtrairia a $horamenos e acrescentaria a $horamais.
Desde já agradeço e te parabenizo pelo execelente trabalho.
Abraços e fica com Deus,
Paulo.
Essa função está me ajudando muito, mas deparei com uma situação e queria ver se não tinha como você implantar isto, é o seguinte:
- Além de fazer esse cálculo de horas, eu precisava ter algumas horas de desconto e outras de acréscimo, será que teria como fazer algo do tipo :
function Calcula_Dif_Hora($inicio,$fim,$data,$dataf,$dif,$horamenos='00:00',$horamais='00:00')
Onde o cálculo seria o cálculo como está sendo que subtrairia a $horamenos e acrescentaria a $horamais.
Desde já agradeço e te parabenizo pelo execelente trabalho.
Abraços e fica com Deus,
Paulo.
19/12/2006 4:04am
(~18 anos atrás)
estarei analisando essa parte, mas o estranho é que aki funciona.
Prometo que quando dispor de tempo irei publicar outra versão com as devidas correções
Falowse
Alcione Ferreira
Sombra®
101080
Prometo que quando dispor de tempo irei publicar outra versão com as devidas correções
Falowse
Alcione Ferreira
Sombra®
101080
08/04/2005 4:06pm
(~19 anos atrás)
Desculpe a demora mas ainda nada...acredito que o problema esteja na função da data no tracho abaixo...
if (!is_array($data)){
if (strstr("/",$data{4})){
$data = explode("/",$data);
}
else if (strstr("/",$data{2}))
{
$aux = explode("/",$data);
$data = array ($aux[2],$aux[1],$aux[0]);
}
} else {
if (strlen($data[0]) == 2){
$data = array ($data[2],$data[1],$data[0]);
}
}
if (!is_array($data)){
if (strstr("/",$data{4})){
$data = explode("/",$data);
}
else if (strstr("/",$data{2}))
{
$aux = explode("/",$data);
$data = array ($aux[2],$aux[1],$aux[0]);
}
} else {
if (strlen($data[0]) == 2){
$data = array ($data[2],$data[1],$data[0]);
}
}
08/04/2005 3:59pm
(~19 anos atrás)
Prezado Augusto.!
A Versão 1.0.0 soh não irá funcionar com diferenças negativas, tipo assim:
data inicial = (hoje)
hora final = 2 minutos atrás
Mas se tiver a diferença de 1 segundo ele mostra.
Fiz o teste.
Atenciosamente,
Alcione Ferreira
Sombra®
101080
A Versão 1.0.0 soh não irá funcionar com diferenças negativas, tipo assim:
data inicial = (hoje)
hora final = 2 minutos atrás
Mas se tiver a diferença de 1 segundo ele mostra.
Fiz o teste.
Atenciosamente,
Alcione Ferreira
Sombra®
101080
31/03/2005 6:40am
(~20 anos atrás)
Acho que quando o tempo é menor que 1 minuto o script não funciona. Peguei a versão 10.0 que é a que me interessa... Estou correto?
31/03/2005 1:32am
(~20 anos atrás)
Veja a versão atual 1.0.0, pode ser que seja a final mas tem uma coisa ainda pra testar, mas acho que faz com que o teste que vc porpos seja findado!
Falows
Falows
23/03/2005 12:41pm
(~20 anos atrás)
Galera...mais uns ajustes...
vc precisa primeiro verificar se a hora está no padrão 00:00 ou 24:00 assim
if ($fim=='00:00:00') $fim='24:00:00';
depois no cálculo precisa ver qual é maior para não dar valor negativo...
if ($time_fim > $time_inicio) {
$t[0] = floor(($time_fim - $time_inicio) / 60);
$t[1] = floor((($time_fim - $time_inicio) / 60) / 60);
} else {
$t[0] = floor(($time_inicio- $time_fim) / 60);
$t[1] = floor((($time_inicio - $time_fim) / 60) / 60);
}
Seria interessante pensarmos na hipótese de acumular horas para mais de um dia, por exemplo hora inicial 23/03/2005 09:00 e final 25/03/2005 02:00...um pequeno desafio.
[]´s
Cássio
vc precisa primeiro verificar se a hora está no padrão 00:00 ou 24:00 assim
if ($fim=='00:00:00') $fim='24:00:00';
depois no cálculo precisa ver qual é maior para não dar valor negativo...
if ($time_fim > $time_inicio) {
$t[0] = floor(($time_fim - $time_inicio) / 60);
$t[1] = floor((($time_fim - $time_inicio) / 60) / 60);
} else {
$t[0] = floor(($time_inicio- $time_fim) / 60);
$t[1] = floor((($time_inicio - $time_fim) / 60) / 60);
}
Seria interessante pensarmos na hipótese de acumular horas para mais de um dia, por exemplo hora inicial 23/03/2005 09:00 e final 25/03/2005 02:00...um pequeno desafio.
[]´s
Cássio
23/03/2005 6:14am
(~20 anos atrás)
Pessoal...fiz uma pequena alteração, pois na comparação de horas < 10 não incluia o "0" então inclui o seguinte...
após a linha $h = $t[1];
incluir if ($h < 10) $h = "0$h";
[]´s
Cássio
após a linha $h = $t[1];
incluir if ($h < 10) $h = "0$h";
[]´s
Cássio
22/03/2005 11:56am
(~20 anos atrás)
Pela urgência acabei fazendo eu mesmo...hehehe...
Está funcionando perfeitamente, já estou usando nos meus sistemas, está tudo OK.
abraços,
fiquem com Deus,
Paulo.