Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberto_S_Luz

Calcular Horas

Recommended Posts

Olá...Bom dia, boa tarde e boa noite a todos (dependendo da hora de quem estiver lendo...)

 

Bom...fiz umas perguntas aki, outras ali... e nada...então venho atravez desta fazer uma outra perguntinha, daí quem sabe...eu consiga o que estou tentando resolver...

 

Bom...para resumir toda a historia, eu gostaria do seguinte:

 

- Realizar o calculos de horas:

 

Hora Inicial = "17:30:00";

Hora Final = "17:30:00";

 

Total = Hora Final - Hora Inicial

 

Total = "10:00:00";

 

Extra = "02:00:00"; /* Varia da quantidade de horas obrigatoria a ser trabalhadas por dia, neste caso, são 8 horas, então 10 - 8 = 2 */

 

Traduzindo...

 

Por exemplo:

 

O valor que será pago por cada hora extra, pode ser de 5 reais...

Então, gostaria de realizar o calculo de horas para que eu obtenha a quantidade de horas trabalhas, pode ser por dia ou mensalmente, para que, quando for efetuado o pagamento do fulano de tal, onde além do salario fixo, receberá tambem o valor das horas extras;

 

Mas...

 

Como realizar o calculo de horas???

Como realizar o calculo de horas * o valor da hora extra??

 

Exemplo:

 

Se o total de horas trabalhadas por mês é de 220 e o funcionario trabalhou 240, então deverá somar o excedente é que:

 

240 - 220 = 20;

 

Então devo somar as 20 horas * o valor da horas que é de 5 reais.

 

 

Bom...to querendo fazer tudo isto com php, pois o sistema que estou "desenvolvendo" é em PHP... portanto, estou recorrendo à este forum para ver se alguem pode me ajudar em algo...

 

Bom...de qualquer forma, agradeço a todos que leram este topico e um grande abraço... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Se alguem puder me ajudar...pelo menos me indicando o rumo, fico grato... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, fiz um exemplo rapidinho aqui com javascript+html, não precisa usar php nesse caso.

É um script só para dar um ponta pé inicial, da pra implementar muita coisa ainda.

 

Att,

Guilherme Oenning.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
	<title>Untitled Page</title>	
	<script language="javascript" type="text/javascript">
	function Hora(obj){
		v = obj.value;
		v=v.replace(/\D/g,"") 
		v=v.replace(/(\d{2})(\d)/,"$1:$2")  
		obj.value = v
	}
	
	function Calcula(){
		txtHoraInicial = document.getElementById("txtHoraInicial");
		txtHoraFinal = document.getElementById("txtHoraFinal");
		
		SegundosInicial = (txtHoraInicial.value.substr(0,2) * 3600);
		SegundosInicial += (txtHoraInicial.value.substr(3,2) * 60);
		
		SegundosFinal = (txtHoraFinal.value.substr(0,2) * 3600);
		SegundosFinal += (txtHoraFinal.value.substr(3,2) * 60);
		
		HorasTotal = parseInt((SegundosFinal - SegundosInicial)/3600);
		MinutosTotal = parseInt(((SegundosFinal - SegundosInicial)%3600)/60);
		
		document.getElementById("txtHoraTotal").value = HorasTotal + ":" + MinutosTotal;
		
		if ((HorasTotal == 8) && (MinutosTotal > 0) || (HorasTotal >= 8)){
			document.getElementById("txtHoraExtra").value = HorasTotal - 8 + ":" + MinutosTotal;
		}else{
			document.getElementById("txtHoraExtra").value = "00:00";
		}
	}
	</script>
</head>
<body>
	Inicial: <input type="text" maxlength="5" id="txtHoraInicial" onkeyup="Hora(this);" /><br />
	Final: <input type="text" maxlength="5" id="txtHoraFinal" onkeyup="Hora(this);" /><br />
	Total: <input type="text" maxlength="5" id="txtHoraTotal" onkeyup="Hora(this);" /><br />
	Extra: <input type="text" maxlength="5" id="txtHoraExtra" onkeyup="Hora(this);" />
	<input type="button" id="txtCalcula" value="Calcula" onclick="Calcula();"/>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...valeu mesmo...obrigado por ter respondido este topico...

 

Olhe só...não sei trabalhar muito com horas...tanto em javascript quanto em php, mas...andei fuçando numas paradas...e já criei algumas paradinhas...não é muita coisa...e tá bem bagunçado ainda, mas...já é um começo...

 

Confira mais abaixo... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

CODE

 

<?php

 

$hora1 = "07:30";

$hora2 = "19:45";

 

$totalhorames = "220"; /*Exemplo de horas obrigatórias por mês, depende de cada empresa*/

$totalhoradia = "8"; /*Exemplo de quantidade de horas obrigatorias por dia*/

$salario = "753.00"; /*Exemplo de salario fixo*/

 

 

echo "Valor pago por hora extra trabalhada: ".$valorhora = "5.0 <br>";

 

 

/*Apenas imprimindo as horas iniciais e finais mesmo....nada demais*/

 

echo "Hora inicio: ".$hora1;

 

echo "<br>Hora Fim: ".$hora2;

 

 

$horaini = strtotime($hora1)."<br>"; /*Transformando as horas em segundos*/

$horafin = strtotime($hora2); /*Transformando as horas em segundos*/

$total = $horafin - $horaini; /*Resultado em segundos*/

 

echo "<br> Total de Horas trabalhadas por dia: ".$hora3 = ($total/60)/60; /*Convertendo os segundos para horas*/

/*Primeiro divide o $total por 60(dividindo por segundos, vai dar um total em minutos),

daí o resultado será dividido por 60(dividindo por minutos, vai dar um total em horas), e o resultado será um valor em horas*/

 

$extra = 0;

 

if($hora3 >= 10){

 

$hora3 = $hora3 - 2; /*As 2 horas no final, corresponde às duas horas de almoço*/

echo "<br> Total de horas extra diaria: ".$extra = $hora3 - $totalhoradia; echo " horas";

}

 

 

echo "<br>Valor a ser pago pelas horas extras trabalhadas: ".$valor = $extra * $valorhora; echo " reais <br>";

 

 

 

 

$extra2 = 0;

 

for($dia = 1; $dia <=27.5; $dia++){

 

if($hora3 >= 8){

 

echo "<br>$dia º dia = $extra2 + $extra = ".$extra2 = $extra2 + $extra;

echo " horas<br>";

}

else{

 

echo "<br>$dia º dia = $extra2 + $extra = ".$extra2; echo " Sem horas extra<br>";

 

}

 

}

echo "<br>Total de horas trabalhadas no mês: ".$totalhoras = $hora3 * 27.5; echo " horas";

echo "<br>Total de horas extras por mês : ".$extra2." horas";

 

echo "<br>Valor a ser pago pelas horas extras: ".$valor = $extra2 * $valorhora; echo " reais";

echo "<br>Salario fixo: $salario reais (Exemplo)<br>";

 

if($hora3 >= 8){

 

echo "<br><br><br>Salario total: ".$salariototal = $salario + $valor; echo " reais";

}

else{

 

echo "<br><br><br>Salario total: ".$salario; echo " reais";

}

echo "<br><br><br>Salario Secundario /*Apenas um exemplo para calcular o salario dividindo o total de horas por mÊs menos o valor de horas obrigatoria, neste caso, é 220*/<br>";

echo "<br> Horas Extra Subtraindo o total de horas ($totalhoras)<br> menos a quantidade de horas obrigatoria por mes ($totalhorames): ".$horatotal = $totalhoras - $totalhorames; echo" horas";

echo "<br> Salario : ".$valor = $horatotal * $valorhora; echo" reais";

echo "<br> Salario final: ".$salariototal = $salario + $valor; echo" reais";

?>

 

Um detalhe...é que...se caso eu colocar horas exatas...irá imprimir valores exatos, mas se eu colocar valores quebrados por exemplo 19:45, onde esses 45 vai dar um probleminha...em vez de aparecer os 45, aparece é 75, pois acho que são trabalhados em frações de horas....por exemplo:

 

15 min = 25;

30 min = 50;

45 min = 75;

60 min = 10 ou 1 h

 

Bom...suponho que seja isso...mas...o que eu não sei é como fazer com que...fique normal...rssss

 

Esse codigo é apenas um esboço...estarei trabalhando mais nele para melhora-lo e chegar ao meu objetivo, até porque, ele está meio precário e com pouquissimna logica....bom... e claro que...irei fuçar no seu codigo também e ver o que posso fazer para adapta-lo... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Bom...um grande abraço e obrigado desde já...assim que tiver mais coisa...postarie aki... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.