Foros del Web » Programando para Internet » Javascript »

Sumar, Restar horas pero de manera mas sencilla

Estas en el tema de Sumar, Restar horas pero de manera mas sencilla en el foro de Javascript en Foros del Web. Mirando el FAQ http://www.forosdelweb.com/showpost....0&postcount=14 modifique el script para sumar hasta 100 valores que traigo de una base de datos, pero lo hice de una manera ...
  #1 (permalink)  
Antiguo 05/06/2007, 21:16
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 24 años, 10 meses
Puntos: 0
Sumar, Restar horas pero de manera mas sencilla

Mirando el FAQ http://www.forosdelweb.com/showpost....0&postcount=14 modifique el script para sumar hasta 100 valores que traigo de una base de datos, pero lo hice de una manera un poco torpe porque no se hacerlo de otra, es decir el en script cada vez que es necesario listo "TODOS LOS CAMPOS DE TEXTO" esto funciona pero me queda un script gigantezco, lo que yo quiero es sabiendo cuantos registros me tira la db, por ejemplo 36, que me sume esos 36 campos y no tener que escribir semejante pagina, imaginen que la db me de unos 300 registros para sumar !!! actualmente lo soluciono con el siguiente ejemplo, y limito la consulta a 100 resultados, funciona, pero quisiera optimizar el tema !!! desde ya muchas gracias

Código PHP:
function sumaTiempos(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100){ 
    var 
secs1 = stringToSeconds(t1); 
    var 
secs2 = stringToSeconds(t2);
    var 
secs3 = stringToSeconds(t3);
    var 
secs4 = stringToSeconds(t4);
    var 
secs5 = stringToSeconds(t5);
    var 
secs6 = stringToSeconds(t6);
    var 
secs7 = stringToSeconds(t7);
    var 
secs8 = stringToSeconds(t8);
    var 
secs9 = stringToSeconds(t9);
    var 
secs10 = stringToSeconds(t10);
    var 
secs11 = stringToSeconds(t11);
    var 
secs12 = stringToSeconds(t12);
    var 
secs13 = stringToSeconds(t13);
    var 
secs14 = stringToSeconds(t14);
    var 
secs15 = stringToSeconds(t15);
    var 
secs16 = stringToSeconds(t16);
    var 
secs17 = stringToSeconds(t17);
    var 
secs18 = stringToSeconds(t18);
    var 
secs19 = stringToSeconds(t19);
    var 
secs20 = stringToSeconds(t20);
    var 
secs21 = stringToSeconds(t21);
    var 
secs22 = stringToSeconds(t22);
    var 
secs23 = stringToSeconds(t23);
    var 
secs24 = stringToSeconds(t24);
    var 
secs25 = stringToSeconds(t25);
    var 
secs26 = stringToSeconds(t26);
    var 
secs27 = stringToSeconds(t27);
    var 
secs28 = stringToSeconds(t28);
    var 
secs29 = stringToSeconds(t29);
    var 
secs30 = stringToSeconds(t30);
    var 
secs31 = stringToSeconds(t31);
    var 
secs32 = stringToSeconds(t32);
    var 
secs33 = stringToSeconds(t33);
    var 
secs34 = stringToSeconds(t34);
    var 
secs35 = stringToSeconds(t35);
    var 
secs36 = stringToSeconds(t36);
    var 
secs37 = stringToSeconds(t37);
    var 
secs38 = stringToSeconds(t38);
    var 
secs39 = stringToSeconds(t39);
    var 
secs40 = stringToSeconds(t40);
    var 
secs41 = stringToSeconds(t41);
    var 
secs42 = stringToSeconds(t42);
    var 
secs43 = stringToSeconds(t43);
    var 
secs44 = stringToSeconds(t44);
    var 
secs45 = stringToSeconds(t45);
    var 
secs46 = stringToSeconds(t46);
    var 
secs47 = stringToSeconds(t47);
    var 
secs48 = stringToSeconds(t48);
    var 
secs49 = stringToSeconds(t49);
    var 
secs50 = stringToSeconds(t50);
    var 
secs51 = stringToSeconds(t51);
    var 
secs52 = stringToSeconds(t52);
    var 
secs53 = stringToSeconds(t53);
    var 
secs54 = stringToSeconds(t54);
    var 
secs55 = stringToSeconds(t55);
    var 
secs56 = stringToSeconds(t56);
    var 
secs57 = stringToSeconds(t57);
    var 
secs58 = stringToSeconds(t58);
    var 
secs59 = stringToSeconds(t59);
    var 
secs60 = stringToSeconds(t60);
    var 
secs61 = stringToSeconds(t61);
    var 
secs62 = stringToSeconds(t62);
    var 
secs63 = stringToSeconds(t63);
    var 
secs64 = stringToSeconds(t64);
    var 
secs65 = stringToSeconds(t65);
    var 
secs66 = stringToSeconds(t66);
    var 
secs67 = stringToSeconds(t67);
    var 
secs68 = stringToSeconds(t68);
    var 
secs69 = stringToSeconds(t69);
    var 
secs70 = stringToSeconds(t70);
    var 
secs71 = stringToSeconds(t71);
    var 
secs72 = stringToSeconds(t72);
    var 
secs73 = stringToSeconds(t73);
    var 
secs74 = stringToSeconds(t74);
    var 
secs75 = stringToSeconds(t75);
    var 
secs76 = stringToSeconds(t76);
    var 
secs77 = stringToSeconds(t77);
    var 
secs78 = stringToSeconds(t78);
    var 
secs79 = stringToSeconds(t79);
    var 
secs80 = stringToSeconds(t80);
    var 
secs81 = stringToSeconds(t81);
    var 
secs82 = stringToSeconds(t82);
    var 
secs83 = stringToSeconds(t83);
    var 
secs84 = stringToSeconds(t84);
    var 
secs85 = stringToSeconds(t85);
    var 
secs86 = stringToSeconds(t86);
    var 
secs87 = stringToSeconds(t87);
    var 
secs88 = stringToSeconds(t88);
    var 
secs89 = stringToSeconds(t89);
    var 
secs90 = stringToSeconds(t90);
    var 
secs91 = stringToSeconds(t91);
    var 
secs92 = stringToSeconds(t92);
    var 
secs93 = stringToSeconds(t93);
    var 
secs94 = stringToSeconds(t94);
    var 
secs95 = stringToSeconds(t95);
    var 
secs96 = stringToSeconds(t96);
    var 
secs97 = stringToSeconds(t97);
    var 
secs98 = stringToSeconds(t98);
    var 
secs99 = stringToSeconds(t99);
    var 
secs100 = stringToSeconds(t100);
    var 
secsSuma = secs1 + secs2 + secs3 + secs4 + secs5 + secs6 + secs7 + secs8 + secs9 + secs10 + secs11 + secs12 + secs13 + secs14 + secs15 + secs16 + secs17 + secs18 + secs19 + secs20 + secs21 + secs22 + secs23 + secs24 + secs25 + secs26 + secs27 + secs28 + secs29 + secs30 + secs31 + secs32 + secs33 + secs34 + secs35 + secs36 + secs37 + secs38 + secs39 + secs40 + secs41 + secs42 + secs43 + secs44 + secs45 + secs46 + secs47 + secs48 + secs49 + secs50 + secs51 + secs52 + secs53 + secs54 + secs55 + secs56 + secs57 + secs58 + secs59 + secs60 + secs61 + secs62 + secs63 + secs64 + secs65 + secs66 + secs67 + secs68 + secs69 + secs70 + secs71 + secs72 + secs73 + secs74 + secs75 + secs76 + secs77 + secs78 + secs79 + secs80 + secs81 + secs82 + secs83 + secs84 + secs85 + secs86 + secs87 + secs88 + secs89 + secs90 + secs91 + secs92 + secs93 + secs94 + secs95 + secs96 + secs97 + secs98 + secs99 + secs100; 
    return 
secondsToTime(secsSuma); 
   } 

function 
calcT3(){ 
with (document.frm) 
t.value = sumaTiempos(t1.value, t2.value, t3.value, t4.value, t5.value, t6.value, t7.value, t8.value, t9.value, t10.value, t11.value, t12.value, t13.value, t14.value, t15.value, t16.value, t17.value, t18.value, t19.value, t20.value, t21.value, t22.value, t23.value, t24.value, t25.value, t26.value, t27.value, t28.value, t29.value, t30.value, t31.value, t32.value, t33.value, t34.value, t35.value, t36.value, t37.value, t38.value, t39.value, t40.value, t41.value, t42.value, t43.value, t44.value, t45.value, t46.value, t47.value, t48.value, t49.value, t50.value, t51.value, t52.value, t53.value, t54.value, t55.value, t56.value, t57.value, t58.value, t59.value, t60.value, t61.value, t62.value, t63.value, t64.value, t65.value, t66.value, t67.value, t68.value, t69.value, t70.value, t71.value, t72.value, t73.value, t74.value, t75.value, t76.value, t77.value, t78.value, t79.value, t80.value, t81.value, t82.value, t83.value, t84.value, t85.value, t86.value, t87.value, t88.value, t89.value, t90.value, t91.value, t92.value, t93.value, t94.value, t95.value, t96.value, t97.value, t98.value, t99.value, t100.value); 
} 
__________________
:) Fernando Dichiera (:
[email protected]
  #2 (permalink)  
Antiguo 06/06/2007, 03:57
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 23 años
Puntos: 45
Re: Sumar, Restar horas pero de manera mas sencilla

Bueno, podrías hacer un bucle for con los argumentos que se le pasa a la función. Los hallas con una variable que se llama arguments.

En el bucle, por cada argumento le aplicarías la función stringToSeconds() y lo sumarías a una variable final, resultado de la suma.

Investígalo, no es dificil.
Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 06/06/2007, 13:56
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 24 años, 10 meses
Puntos: 0
Re: Sumar, Restar horas pero de manera mas sencilla

voy a investigar, es que toy nuevito con javascript, si alguien tienen algun ejemplo del uso se lo agradeceria!!! a todos muchas gracias !!!
__________________
:) Fernando Dichiera (:
[email protected]
  #4 (permalink)  
Antiguo 08/06/2007, 19:54
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 24 años, 10 meses
Puntos: 0
Re: Sumar, Restar horas pero de manera mas sencilla

Estoy investigando y no puedo dar con el resultado, alguien me puede tender una mano!?
__________________
:) Fernando Dichiera (:
[email protected]
  #5 (permalink)  
Antiguo 08/06/2007, 20:35
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 23 años
Puntos: 45
Re: Sumar, Restar horas pero de manera mas sencilla

Así, de cabeza:
Código PHP:
function sumaTiempos() {
for(var 
i=0, dev=0; i<sumaTiempos.arguments.length; i++)
dev+=stringToSeconds(sumaTiempos.arguments[i]);
return 
dev;
} 
Creo que así tendría el mismo efecto, da igual los argumentos que le pases.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 08:08.