Ir para conteúdo

POWERED BY:

Arquivado

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

Castor Jr.

Somar horas e minutos

Recommended Posts

Bom Dia

 

To com o seguinte problema tenho um formulário onde os usuário ira utilizar para informar registro de horas onde em cada input ele informará a hora no seguinte formato 07:30 12:00 13:00 16:40 meu problema esta em fazer ele realizar o calculo utilizando os minutos informado nos inputs ou seja eu consigo apenas realizar o calculo apenas com os numeros antes dos caracteres ":" não considerando os 30 minutos do primeiro input e nem os 40 minutos do utimo input.

 

Não sei se tem como ou se existem uma função em javascript que trabalhe como o explode das linguagens, ou se alguem consegue visualizar alguma outra maneira de realizar esta tarefa.

 

segue codigo que estava construindo para realizar os calculo.

 

<!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><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title><script type="text/javascript">function calcular(){	var entrada 	= (parseInt(document.formu.entrada.value));	var inicio 		= (parseInt(document.formu.inicio.value));	var termino 	= (parseInt(document.formu.termino.value));	var saida 		= (parseInt(document.formu.saida.value));			var total = ( (inicio - entrada) + (saida - termino) );		alert (total);}</script></head><body><form name="formu" action="" method="post"><table width="100">	<tr>		<td><input type="text" name="entrada" value="" /></td>		<td><input type="text" name="inicio" value="" /></td>		<td><input type="text" name="termino" value="" /></td>		<td><input type="text" name="saida" value="" onblur="calcular();" /></td>		<td><input type="text" name="total" value="" /></td>											</tr></table></form></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

sustr funciona para vaiavel em javascript ? tentei utilizar com variavel mas não obtive o mesmo sucesso.

usa substr

<!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><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title><script type="text/javascript">function calcular(){	var entrada	 = (parseInt(document.formu.entrada.value.substr(0,2)));	var inicio		 = (parseInt(document.formu.inicio.value.substr(0,2)));	var termino	 = (parseInt(document.formu.termino.value.substr(0,2)));	var saida		 = (parseInt(document.formu.saida.value.substr(0,2)));			var total = ( (inicio - entrada) + (saida - termino) );		alert (total);}</script></head><body><form name="formu" action="" method="post"><table width="100">	<tr>		<td><input type="text" name="entrada" value="" /></td>		<td><input type="text" name="inicio" value="" /></td>		<td><input type="text" name="termino" value="" /></td>		<td><input type="text" name="saida" value="" onblur="calcular();" /></td>		<td><input type="text" name="total" value="" /></td>											</tr></table></form></body></html>
sustr funciona para vaiavel em javascript ? tentei utilizar com variavel mas não obtive o mesmo sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o codigo que você me passou finciona sim, mas pega somente a hora e não os minutos ai para solucionar eu fiz o mesmo esquema para pegar os minutos segue o codigo.

 

<!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><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title><script type="text/javascript">function calcular(){	var entradah	 = (parseInt(document.formu.entrada.value.substr(0,2)));	var inicioh	  = (parseInt(document.formu.inicio.value.substr(0,2)));	var terminoh	 = (parseInt(document.formu.termino.value.substr(0,2)));	var saidah	   = (parseInt(document.formu.saida.value.substr(0,2))); 			var thm = (inicioh - entradah);	var tht = (saidah  - terminoh);	var entradam	 = (parseInt(document.formu.entrada.value.substr(3,4)));	var iniciom	  = (parseInt(document.formu.inicio.value.substr(3,4)));	var terminom	 = (parseInt(document.formu.termino.value.substr(3,4)));	var saidam	   = (parseInt(document.formu.saida.value.substr(3,4))); 		var thm = Math.floor(thm - (entradam / 60));	//alert (thm);	var tht = Math.floor(tht - (saidam / 60));		//alert (tht);	/*****************************************************/	// conta os minuto a soma da hora do almoço	var somam = (60 - entradam);	//alert (somam);	var somam = (somam + iniciom);	//alert (somam);	// conta os minuto a soma da hora depois do almoço	var somat = (60 - terminom);	//alert (somat);	var somat = (somat + saidam);		//	alert (somat);/*****************************************************/	var totalm = ( somam + somat );		//alert (totalm);	if (totalm > 60){			var hora = (totalm / 60);				var hora = (hora + thm + tht);				/*var phora = hora.substring(0, 2);				var pminuto = hora.substring(2, 3);				var total = ( phora + ':' + pminuto );*/				alert (hora);			}else{			var hora = (thm + tht);			var total = ( hora + ':' + totalm );			alert (total);		}	}</script></head><body><form name="formu" action="" method="post"><table width="100">	<tr>		<td><input type="text" name="entrada" value="" /></td>		<td><input type="text" name="inicio" value="" /></td>		<td><input type="text" name="termino" value="" /></td>		<td><input type="text" name="saida" value="" onblur="calcular();" /></td>		<td><input type="text" name="total" value="" /></td>											</tr></table></form></body></html>

do jeito que ta ele funciona mas por exemplo são 5 inputs os 4 primeiros os usuario digita os horario por exemplo 07:30 12:00 13:00 16:40 onde o calculo e ( (07:30 - 12:00) + (13:00 - 16:40) ) tendo como resultado no 5 input 08:10, com o codigo acima o problema e que ele me reporta os 10 minutos em hora sendo assim necessario pegar a variavel "explodir" ela pegar a parte do dos minutos e transformar em hora, espero agora ter exposto melhor o problema.

 

Não conheço alguma função no javascript que realizer esse calculo automatico, não consigo visualizar outra maneira de resolver esse problema.

 

grato desde já.

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.