Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde a todos,
Tenho um sistema de ponto eletrônico que utiliza a seguinte tabela no banco:
codigo (identificador)
funcionario (codigo do funcionario)
horario (datetime com data e hora do evento)
tipo (E = entrada ou S = saída)
Os funcionários registram 4 pontos por dia sendo:
Entrada de manhã
Saída para almoço
Entrada à tarde
Saída ao fim do expediente
Portanto, para um único dia temos os registros:
1;3;2008-12-01 08:00:00;E
2;3;2008-12-01 12:00:00;S
3;3;2008-12-01 14:00:00;E
4;3;2008-12-01 18:00:00;S
Preciso agora fazer um cálculo automático para saber quantas horas o funcionário trabalhou dentro do mês.
Estou tentando pegar todos os regitros dentro do mês e somar todas as horas de entrada e todas as horas de saída para depois fazer saídas - entradas para ter o total de horas trabalhadas (no Excel funciona que é uma beleza).
Porém, quando a soma passa de 24 horas, o resultado inclui data.
Por exemplo, se eu somar duas horas de entrada como 08:00:00 + 16:05:00, o resultado final é 31/12/1899 00:05:00.
Como fazer com que o resultado seja correto, o que neste caso seria 24:05:00?
Agradeço qualquer ajuda.
[]'s
Para somar horas, você vai ter que converter em segundos.
Dê uma olhada no Laboratório de Scripts, pois postei uma função lá que faz isso.
Qualquer dúvida poste aqui.
Obrigado Darkdemo e hargon.
Cheguei a usar o Datediff, mas teria que calcular dia por dia para depois somar.
A função do hargon serviu perfeitamente para o que eu queria.
Muito obrigado aos dois e parabéns ao hargon pela função.
[]'s
Muito bom que lhe ajudou Full Burn. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Utilize a função "dateDiff()" para pegar a diferença entre um horário e outro.. ai vá somando essas diferenças ao longo do mes..
Abraços..