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 Pessoal, estou enlouquecendo aqui estou montando esse script para banco de horas.
while ($rs = mysql_fetch_assoc($sql)) {
$id_dados = $rs["id"];
$data = $rs["data"];
$entr_manha = $rs["entr_manha"];
$saida_manha = $rs["saida_manha"];
$entr_tarde = $rs["entr_tarde"];
$saida_tarde = $rs["saida_tarde"];
$feriado = $rs["feriado"];
$ano = substr("$data", 0, 4);
$mes = substr("$data", 5, -3);
$dia = substr("$data", 8, 9);
$diasemana = date("w", mktime(0,0,0,$mes,$dia,$ano) );
switch($diasemana) {
case"0": $diasemana = "Domingo"; break;
case"1": $diasemana = "Segunda"; break;
case"2": $diasemana = "Terça"; break;
case"3": $diasemana = "Quarta"; break;
case"4": $diasemana = "Quinta"; break;
case"5": $diasemana = "Sexta"; break;
case"6": $diasemana = "Sábado"; break;
}
$trab = "08:00:00";
$hora1 = explode(":",$entr_manha);
$hora2 = explode(":",$saida_manha);
$hora3 = explode(":",$entr_tarde);
$hora4 = explode(":",$saida_tarde);
$hora5 = explode(":",$trab);
$acumulador1 = ($hora1[0] * 3600) + ($hora1[1] * 60) + $hora1[2];
$acumulador2 = ($hora2[0] * 3600) + ($hora2[1] * 60) + $hora2[2];
$acumulador3 = ($hora3[0] * 3600) + ($hora3[1] * 60) + $hora3[2];
$acumulador4 = ($hora4[0] * 3600) + ($hora4[1] * 60) + $hora4[2];
$acumulador5 = ($hora5[0] * 3600) + ($hora5[1] * 60) + $hora5[2];
$resultado = $acumulador2 - $acumulador1;
$resultado1 = $acumulador4 - $acumulador3;
$resultado2 = $acumulador5;
$hora_ponto = floor($resultado / 3600);
$hora_ponto1 = floor($resultado1 / 3600);
$hora_ponto2 = floor($resultado2 / 3600);
$resultado = $resultado - ($hora_ponto * 3600);
$resultado1 = $resultado1 - ($hora_ponto1 * 3600);
$resultado2 = $resultado2 - ($hora_ponto2 * 3600);
$min_ponto = floor($resultado / 60);
$min_ponto1 = floor($resultado1 / 60);
$min_ponto2 = floor($resultado2 / 60);
$resultado = $resultado - ($min_ponto * 60);
$resultado1 = $resultado1 - ($min_ponto1 * 60);
$resultado2 = $resultado2 - ($min_ponto2 * 60);
$secs_ponto = $resultado;
$secs_ponto1 = $resultado1;
$secs_ponto2 = $resultado2;
if ($feriado=="" and $diasemana!="Sábado" and $diasemana!="Domingo"){
//transformar em variaveis
$horaa = $hora_ponto.":".$min_ponto.":".$secs_ponto;
$horab = $hora_ponto1.":".$min_ponto1.":".$secs_ponto1;
$hora6 = explode(":",$horaa);
$hora7 = explode(":",$horab);
$acumulador6 = ($hora6[0] * 3600) + ($hora6[1] * 60) + $hora6[2];
$acumulador7 = ($hora7[0] * 3600) + ($hora7[1] * 60) + $hora7[2];
$resultado3 = $acumulador7 + $acumulador6;
$hora_ponto3 = floor($resultado3 / 3600);
$resultado3 = $resultado3 - ($hora_ponto3 * 3600);
$min_ponto3 = floor($resultado3 / 60);
$resultado3 = $resultado3 - ($min_ponto3 * 60);
$secs_ponto3 = $resultado3;
$total_horas = $hora_ponto3.":".$min_ponto3.":".$secs_ponto3;
$horac = $hora_ponto3.":".$min_ponto3.":".$secs_ponto3;
$horad = $hora_ponto2.":".$min_ponto2.":".$secs_ponto2;
$hora8 = explode(":",$horac);
$hora9 = explode(":",$horad);
$acumulador8 = ($hora8[0] * 3600) + ($hora8[1] * 60) + $hora8[2];
$acumulador9 = ($hora9[0] * 3600) + ($hora9[1] * 60) + $hora9[2];
$resultado4 = $acumulador8 - $acumulador9;
$hora_ponto4 = floor($resultado4 / 3600);
$resultado4 = $resultado4 - ($hora_ponto4 * 3600);
$min_ponto4 = floor($resultado4 / 60);
$resultado4 = $resultado4 - ($min_ponto4 * 60);
$secs_ponto4 = $resultado4;
$total_extras = $hora_ponto4.":".$min_ponto4.":".$secs_ponto4;
?>
<?phpecho "Diferença entre a 1º e 2º hora: ".$hora_ponto.":".$min_ponto.":".$secs_ponto."</br>";
echo "Diferença entre a 3º e 4º hora: ".$hora_ponto1.":".$min_ponto1.":".$secs_ponto1."</br>";
echo "Total de Horas : ".$hora_ponto3.":".$min_ponto3.":".$secs_ponto3."</br>";
echo "Total de Horas à Trabalhar : ".$hora_ponto2.":".$min_ponto2.":".$secs_ponto2."</br>";
echo "Total de Extras : ".$hora_ponto4.":".$min_ponto4.":".$secs_ponto4."</br>";
?>Diferença entre a 1º e 2º hora: 5:0:0
Diferença entre a 3º e 4º hora: 3:30:0
Total de Horas : 8:30:0
Total de Horas à Trabalhar : 8:0:0
Total de Extras : 0:30:0
Assim fica errado:
Diferença entre a 1º e 2º hora: 5:30:0
Diferença entre a 3º e 4º hora: 2:0:0
Total de Horas : 7:30:0
Total de Horas à Trabalhar : 8:0:0
Total de Extras : -1:30:0 (Aqui teria que dar (-0:30:00), pq da uma (-1:30) http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif ? espero que alguem possa me ajudar
Carregando comentários...