function Calcula_Dif_Hora($inicio,$fim,$data,$dataf,$dif,$horamenos='00:00',$horamais='00:00') { /********************************************************** CALCULA DIFERENÇA DE HORAS - modificado por Paulo - 19/12/06 ***********************************************************/ global $dif; if (!is_array($inicio)) { $inicio = explode(":",$inicio); } if (!is_array($fim)){ $fim = explode(":",$fim); } 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($dataf)){ if (strstr("-",$dataf{4})){ $dataf = explode("-",$dataf); } else if (strstr("-",$dataf{2})){ $aux2 = explode("-",$dataf); $dataf = array ($aux2[2],$aux2[1],$aux2[0]); } } else { if (strlen($dataf[0]) == 2){ $dataf = array ($dataf[2],$dataf[1],$dataf[0]); } } if (!is_array($horamenos)) { $horamenos = explode(":",$horamenos); } if (!is_array($horamais)) { $horamais = explode(":",$horamais); } $time_inicio = (($inicio[0]*60)*60) + ($inicio[1]*60) + $inicio[2]; $time_fim = (($fim[0]*60)*60) + ($fim[1]*60) + $fim[2]; $time_menos = (($horamenos[0]*60)*60) + ($horamenos[1]*60) + $horamenos[2]; $time_mais = (($horamais[0]*60)*60) + ($horamais[1]*60) + $horamais[2]; $t[0] = floor( ( ( ($time_fim - $time_inicio) + $time_mais) - $time_menos) / 60); $t[1] = floor( ( ( ( ($time_fim - $time_inicio) + $time_mais) - $time_menos) / 60) / 60); $h = $t[1]; $m = $t[0] - ($t[1]*60); if ($data[0] != $dataf[0]) { $aux2 = ($dataf[0] - $data[0])*365; $valor = $valor+$aux2; } if ($data[1] != $dataf[1]){ $aux2 = ($dataf[1]-$data[1])*30; $valor = $valor+$aux2; } if ($data[2] != $dataf[2]) { $aux2 = $dataf[2]-$data[2]; $valor = $valor+$aux2; } $t[1] = $t[1]+$valor*24; //$valor = numero de dias a mais if ($h < 0) { $h=$t[1]; } if ($h < 10) $h = "0$h"; if ($m < 10) $m = "0$m"; $dif="$h:$m"; return $dif; }