Hola que tal??
tengo una duda ... y les pido de favor si me pueden orientar
basicamente necesito crear un timer, o lo que sea necesario jeje, para saber cuanto tiempo dura un bucle (un for)
como lo puedo hacer??
pones:
long tini=0; //tiempo inicial
double ttot=0; // tiempo total
tini=System.nanoTime();
//aqui pones a lo que le vas a medir el tiempo
ttot=Double.valueOf(System.nanoTime()-tini)*0.000000001;
System.out.print(ttot+" segundos.");
te lo puse en segundos, esque te da el timepo en nanos.
^^ espero que te sirva :)
Lu15_CL4
Saludo
quisiera saber de cual libreria o packete es System.nanoTime() porque me da error. requiero calcular el tiempo transcurrido entre dos proceso en cuanto a hora minutos y segundos y por lo pronto quiero ver como funciona el codigo que suministraste. Porque me da error el metodo System.nanoTime()
Informatico95
es del 'java.lang.*' mas especifico 'java.lang.System.nanoTime()', solo aparece a partir del jdk 1.5, debe ser eso, al mejor tienes una version mas vieja.
la funcion esa solo te regresa el tiempo actual en nano segundos, pa sacar el tiempo en que dura algo sacas el tiempo al iniciar y al finalizar luego nomas los restas
PD: esto no es un timer... los timer son como relojes que haces que ejecuten codigo cada cierto tiempo(se pueden usar para hacer ciclos muuuuuy largos sin que se tragen todos los recursos)
Lu15_CL4
Ah Ok tengo la version 1.4 por eso da error. Emplee la funcion System.currentTimeMillis() que da el tiempo en milisegundo empleando tu consejo se toma el tiempo al inicio del proceso y al final.
Ahora como hago para transformar eso en hora minutos y segundos?
Hice lo siguiente para el calculo de horas, minutos y segundos pero cunado tomo el tiempo me da incongruencia como 0 hora 1 minuto 102 segundos. Cuando todos sabemos que los segundos son hasta 60.
Cual es la logica para ese calculo?
Informatico95
--------------------------------------------------------------------------------
Perdon equivoque, obvie los calculos que estaba haciendo
Ah Ok tengo la version 1.4 por eso da error. Emplee la funcion System.currentTimeMillis() que da el tiempo en milisegundo empleando tu consejo se toma el tiempo al inicio del proceso y al final.
Ahora como hago para transformar eso en hora minutos y segundos?
Hice lo siguiente para el calculo de horas, minutos y segundos
segundot=(int)(millisDiff/1000);
minutot=(int)(millisDiff/(1000*60));
horat=(int)(millisDiff/(1000*60*60));
pero cuando tomo el tiempo me da incongruencia como 0 hora 1 minuto 102 segundos. Cuando todos sabemos que los segundos son hasta 60.
Cual es la logica para ese calculo?
Informatico95
;D ;D ;D ;D ;D
esa logica esta mal es mas no nesesitas pasrlo a minutos oras y segundos por que sienpre seria 00 horas 00minutis 0.00000x segundos nuca se demorarar mas de un minuto a menos que ayas echo un programa gigantes que ayan 20 for anidados y los busque en varias vases de datos entiendes lo que digo :P
la logica es la siguiente
ayas primero las oras con desimales 5,5 horas luego a los deciamles de las horas lo pasas a minutos que sea asi 0,5horas =30minutos
aorita te lo ago um metodo que te lo resuelve
Cita de: INFORMATICO95 en 18 Abril 2008, 12:41 PM
Hice lo siguiente para el calculo de horas, minutos y segundos
segundot=(int)(millisDiff/1000);
minutot=(int)(millisDiff/(1000*60));
horat=(int)(millisDiff/(1000*60*60));
pero cuando tomo el tiempo me da incongruencia como 0 hora 1 minuto 102 segundos. Cuando todos sabemos que los segundos son hasta 60.
Cual es la logica para ese calculo?
Informatico95
lo que pasa es que estas usando el mismo valor para todo(milisDiff) solo lo estas pasando a horas, minutos y segundos, osea: 0 hora = 1 minuto = 102 segundos..., solo que les kitas los decimales al pasarlos a entero, me da weba pensar... ya tienes el error buscale da ahi ^^
:)