Foros del Web » Programando para Internet » Javascript »

Sumar minutos y segundos

Estas en el tema de Sumar minutos y segundos en el foro de Javascript en Foros del Web. Hola a todos... No encuentro la forma de sumar dos valores expresados en minutos y segundos, por ejemplo, tengo dos input type con los siguientes ...
  #1 (permalink)  
Antiguo 06/02/2002, 02:10
Avatar de Tx
Tx
 
Fecha de Ingreso: enero-2002
Ubicación: Cba - Arg
Mensajes: 188
Antigüedad: 22 años, 3 meses
Puntos: 1
Sumar minutos y segundos

Hola a todos...
No encuentro la forma de sumar dos valores expresados en minutos y segundos, por ejemplo, tengo dos input type con los siguientes valores 2.30 y 3.40 (minutos, segundos), y en un tercer input el resultado final, que logicamente sería 6.10, pero que arroja 5.70; ahora como transformo ese valor a una medida de tiempo? ó hay alguna forma de indicar que son unidades de tiempo y que las trate como tal?

Cualquier dato me viene bien, gracias...
PD: puede que este divagando tengo mucho sueño...
  #2 (permalink)  
Antiguo 06/02/2002, 02:29
Usuario no validado
 
Fecha de Ingreso: julio-2001
Mensajes: 766
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: Sumar minutos y segundos

bien tienes dos valores Float y tu maquina lo que realiza es sumar esos dos valores

  #3 (permalink)  
Antiguo 06/02/2002, 13:14
Avatar de Tx
Tx
 
Fecha de Ingreso: enero-2002
Ubicación: Cba - Arg
Mensajes: 188
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Sumar minutos y segundos

Pues sí...me di cuenta, pero como lo transformo? ó no hay forma?, estoy buscando información desde anoche y no consigo dar con alguna pista.
Si bien hay funciones de tiempo, pero no conozco ninguna que te permita operar aritméticamente con ellas.

Saludos...
  #4 (permalink)  
Antiguo 07/02/2002, 04:12
Usuario no validado
 
Fecha de Ingreso: julio-2001
Mensajes: 766
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: Sumar minutos y segundos

los datos del tiempo tu los obtienes o te los pasa el usuario escribiendolos directamente
  #5 (permalink)  
Antiguo 07/02/2002, 16:10
Avatar de Tx
Tx
 
Fecha de Ingreso: enero-2002
Ubicación: Cba - Arg
Mensajes: 188
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Sumar minutos y segundos

Hola unKnown...
Los datos los obtengo de una base de datos, estos son mostrados en campos Imput Type y el usuario va eligiendo cualquiera por medio de checkboxes y estos deben sumarse y mostrar el resultado final en un Input Type.
Estuve revisando apuntes de la secundaria (nunca biene mal, je :P), y por lo menos ya se cuales son las operaciones matemáticas que debo hacer para obtener los resultados.
Por ej. siguiendo con la suma de los números que dí antes (2.30 y 3.40):
Primero hay que pasarlos a segundos:
2.30 = 150 seg (2 * 60 + 30)
3.40 = 220 seg (3 * 60 + 40)
Los sumamos:
150 + 220 = 370 seg
Ahora los pasamos a unidades de tiempo pero en base 10:
370 / 60 = 6.166666666666667
Tomamos la parte entera y la multiplicamos por 60, luego lo mismo pero con el número completo:
6 * 60 = 360
6.166666666666667 * 60 = 370
Los restamos para obtener los segundos que le corresponderían al valor entero de la operación obtenida en base 10:
370 - 360 = 10
base 10 = 6 .166666666666667 (6, entero a tomar)
Final = 6 min. 10 seg.(10, valor obtenido en la última operación)

Todo esto para sacar que 2 min 30 seg. + 3 min. 40 seg. es igual a 6 min. 10 seg.
Ahora viene lo feo, hacer esto con JavaScript.
Saludos....
  #6 (permalink)  
Antiguo 07/02/2002, 16:23
Avatar de Tx
Tx
 
Fecha de Ingreso: enero-2002
Ubicación: Cba - Arg
Mensajes: 188
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Sumar minutos y segundos

PD: Por eso, creería que debe haber alguna función para operar con medidas de tiempo, para no dar tantas vueltas.
  #7 (permalink)  
Antiguo 08/02/2002, 00:47
Avatar de Tx
Tx
 
Fecha de Ingreso: enero-2002
Ubicación: Cba - Arg
Mensajes: 188
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Sumar minutos y segundos

Pues estoy cerca, este es el prototipo para el cálculo, si a alguien le interesa, que lo revise y lo mejoramos (solo lo probé en IE). Lo estuve testeando y por lo menos anda bien, ahora resta adaptarlo para usarlo con ASP desde una base de datos, pero ese es otro tema; ahí va:

<script language="Javascript">

separador = /:/

X1 = "34:35" //Valor en minutos y segundos
seg1 = X1.search(separador)
fin = seg1
fin1 = seg1+1
XT = eval(X1.substring(0,fin)*60)+eval(X1.substring(fin 1))

//*******Se repite el paso anterior********

X2 = "46:48" //Minutos y segundos
seg2 = X2.search(separador)
fin_1 = seg2
fin1_1 = seg2+1
XT1 = eval(X2.substring(0,fin_1)*60)+eval(X2.substring(f in1_1))

Total = XT+XT1

hora = new Date(0,0,0,0,0,Total)

XTX = hora.getHours()+ "h:"+hora.getMinutes()+ "m:" +hora.getSeconds()+ "s"

document.write("La suma de 34m 35s más 46m 48 es:<br> " + XTX)

</script>

Saludos...
  #8 (permalink)  
Antiguo 08/02/2002, 01:55
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Re: Sumar minutos y segundos

Gracias por apoyarme en el foro de Administración.

<html>
<head>
<script language="JavaScript">

function sumaTiempos(t1, t2){
var dot1 = t1.indexOf(".");
var dot2 = t2.indexOf(".");
var m1 = t1.substr(0, dot1);
var m2 = t2.substr(0, dot2);
var s1 = t1.substr(dot1 + 1);
var s2 = t2.substr(dot2 + 1);
var sRes = (Number(s1) + Number(s2));
var mRes;
var addMinute = false;
if (sRes >= 60){
addMinute = true;
sRes -= 60;
}
mRes = (Number(m1) + Number(m2) + (addMinute? 1: 0));
return String(mRes) + "." + String(sRes);
}

function calculaT3(){
document.formulario.t3.value = sumaTiempos(document.formulario.t1.value, document.formulario.t2.value)
}

</script>
</head>
<body>
<form name="formulario">
<input type="text" name="t1" value="2.30"><br>
<input type="text" name="t2" value="3.40"><br>
<hr>
<input type="text" name="t3" value=""><br><br>
<input type="button" onclick="calculaT3()" value="Sumar">
</form>
</body>
</html>
  #9 (permalink)  
Antiguo 08/02/2002, 02:37
Usuario no validado
 
Fecha de Ingreso: julio-2001
Mensajes: 766
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: Sumar minutos y segundos

TX cheke tu codigo y funciona muy bien no creo que necesite modificasiones radicales ahora bien el de Kaopectate si necesita algunas modificasiones por ejemplo al sumar .70 seg mas .70seg me regresa 1.80 en vez de 2.20
  #10 (permalink)  
Antiguo 08/02/2002, 02:43
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Re: Sumar minutos y segundos

Claro unKnown, si en lugar de colocar .70 + .70 colocas 1.10 + 1.10, te dá el resultado correcto. De cualquier modo ese algoritmo es una base, no chequea la entrada y no controla, por ejemplo, si la suma de los minutos genera horas.

De cualquier modo, Tx, si te sirve y deseas que lo amplie, avisa.
  #11 (permalink)  
Antiguo 08/02/2002, 03:43
Avatar de Tx
Tx
 
Fecha de Ingreso: enero-2002
Ubicación: Cba - Arg
Mensajes: 188
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Sumar minutos y segundos

Buenas..
Gracias por el código Kaopectate!, claro que me sirve, me es sumamente útil. Con respecto al ingreso no habría problemas ya que estos provienen de una base de datos formateada (ms:ss); ahora estoy revisandolos para ver como ó cual incluir, ya que se generarían en un ASP, y me vuelvo a complicar la vida, je...
Por cierto, en cuanto lo hiciste? estuve 3 DIAS BUSCANDOLE LA VUELTA! (que brutez! :( )

Muchas gracias a los dos, les debo una, en lo que pueda aquí estoy...
  #12 (permalink)  
Antiguo 08/02/2002, 08:03
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Re: Sumar minutos y segundos

Lo que pasa Tx, es que yo ante todo soy programador, y en este mundo web, si en algo he tratado de profundizar ha sido en el JavaScript. El algoritmo no me tomó mucho tiempo, porque me ha tocado hacer eso mismo en muchos lenguajes.

Seguramente tu haces otras cosas rápido que a mi me costarán tres dias.

Estamos a la orden.

Suerte.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:06.