Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > JAVA
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-03-2008
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Cronometro

Buenos días inestimables amigos:

He estado ocupado retocando los ultimos detalles de una aplicación en Java y he necesitado incluirle un sencillo cronómetro, he conseguido que este que cuyo código expongo más abajo funcione a las mil maravillas, sin embargo, yo necesito que el cronómetro alcance a visualizar las horas transcurridas y ahí es donde esta el problema pues al tratar de cambiar el parametro (mm:ss) por (hh:mm:ss) no me funciona correctamente, iniciando el cronómetro con valores erróneos tales como 07:00:00 en vez de 00:00:00, si alguién sabe algo al respecto como siempre se le agradece una sugerencia...

Saludos reiterados,

Oracle


Código:
public class Cronometro extends Thread
{
    JLabel LabelTiempoTranscurrido;
public JLabel getLabelTiempoTranscurrido() {
        return LabelTiempoTranscurrido;
    }

    public void setLabelTiempoTranscurrido(JLabel labelTiempoTranscurrido) {
        LabelTiempoTranscurrido = labelTiempoTranscurrido;
    }
    

public void run()
{
long tiempoInicio = System.currentTimeMillis();

for(;;)
{
try{sleep(1000);}catch(Exception e){}
long tiempoActual = System.currentTimeMillis();

ponerTiempo(tiempoActual - tiempoInicio);
}
}

private void ponerTiempo(long aTiempo)
{
 java.text.SimpleDateFormat tmpSDF = new java.text.SimpleDateFormat("mm:ss");

String tmpText = "Tiempo transcurrido: " + tmpSDF.format(new java.util.Date(aTiempo));
getLabelTiempoTranscurrido().setText(tmpText);
}
}
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #2  
Antiguo 01-04-2008
Fate Fate is offline
Invitado
 
Registrado: dic 2007
Posts: 108
Poder: 0
Fate Va por buen camino
No tyo seguro por falta de tiempo (ganas)

prueba esto HH:mm:ss
Responder Con Cita
  #3  
Antiguo 01-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No es Java es Delphi, pero te dara alguna idea.
Saludos

Última edición por Caral fecha: 03-04-2008 a las 20:34:50.
Responder Con Cita
  #4  
Antiguo 02-04-2008
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Hola Fate, ya he probado con eso antes de escribiros, y nada, me sale lo mismo que con hh:mm:ss pero en hora Militar, o sea con hh:mm:ss me comienza en 07:00:00 y si pongo HH:mm:ss comienza con 19:00:00...debe ser otra cosa....

Gracias Caral le echare un vistazo a tu cronometro....

Salu2

oracle
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #5  
Antiguo 03-04-2008
Fate Fate is offline
Invitado
 
Registrado: dic 2007
Posts: 108
Poder: 0
Fate Va por buen camino
Let's see

HH:mm:ss es el que viene en la documentacion oficial:

Código:
Date and Time Pattern          Result                "yyyy.MM.dd G 'at' HH:mm:ss z"          2001.07.04 AD at 12:08:56 PDT                "EEE, MMM d, ''yy"          Wed, Jul 4, '01                "h:mm a"          12:08 PM                "hh 'o''clock' a, zzzz"          12 o'clock PM, Pacific Daylight Time                "K:mm a, z"          0:08 PM, PDT                "yyyyy.MMMMM.dd GGG hh:mm aaa"          02001.July.04 AD 12:08 PM                "EEE, d MMM yyyy HH:mm:ss Z"          Wed, 4 Jul 2001 12:08:56 -0700                "yyMMddHHmmssZ"          010704120856-0700
Ahi viene un chorro pa que le utilices, debe servir alguno de estos.

y ademas, no uses DATE, utiliza calendar.

Y por último, porque creas dos dates y le das getHOUR y vas restando y listo
Responder Con Cita
  #6  
Antiguo 03-04-2008
Fate Fate is offline
Invitado
 
Registrado: dic 2007
Posts: 108
Poder: 0
Fate Va por buen camino
me falto

intnta hh:mm quizas fuinciones ve lo que te pasé
Responder Con Cita
  #7  
Antiguo 03-04-2008
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Lo intentare y os digo....
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #8  
Antiguo 03-04-2008
Fate Fate is offline
Invitado
 
Registrado: dic 2007
Posts: 108
Poder: 0
Fate Va por buen camino
intentalo

Cita:
Empezado por oracle Ver Mensaje
Lo intentare y os digo....


como diriamos en mexico ORACLE
Responder Con Cita
  #9  
Antiguo 04-04-2008
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Hola Fate, con hh:mm comienza en 07:00...con HH:mm comienza en 19:00....
con hh:ss y HH:ss hace exactamente lo mismo....no se que más probar...

Saludos

oracle
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #10  
Antiguo 16-04-2008
Fate Fate is offline
Invitado
 
Registrado: dic 2007
Posts: 108
Poder: 0
Fate Va por buen camino
A ver creo que he entendido mal

El problema es que quieres iniciar un date en 00:00:00 ?

Si es así pues le das un SetHour y los otros dos setteres(minutos y segundos y listo)

Lo otro que entiendo es que quieres darle formato de 24 y no de doce horas, si es asi pues yo uso esto:

Código:
Date d = new Date();
    DateFormat df = new SimpleDateFormat("HH:mm:ss:SSS");
    System.out.println("Starting task " + id + " at " + df.format(d));

y obtengo esto:

Starting task Task 3 at 13:10:10:328


Espero quede hyperaclarado o yo haya entendido bien
Responder Con Cita
  #11  
Antiguo 16-04-2008
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Cita:
Si es así pues le das un SetHour y los otros dos setteres(minutos y segundos y listo)
Gracias Fate por responder, sin embargo a pesar de tu aclaración sigue sin funcionarme. De todas formas en la parte que me pierdo es en el setHour y los otros dos setteres que no se de donde salen....


Saludos...
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #12  
Antiguo 16-04-2008
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Bueno este es el código, a ver si así puedes ayudarme....


Código:
public class Cronometro extends Thread
{
    JLabel LabelTiempoTranscurrido;    
    boolean Finish = false;

    public void run()
    {
        long tiempoInicio = System.currentTimeMillis();
        
        
        for(;;)
            {
                if(Finish) break;
                
                try{sleep(1000);}catch(Exception e){}
                long tiempoActual = System.currentTimeMillis();
                
                ponerTiempo(tiempoActual - tiempoInicio);
            }
    }
        
    private void ponerTiempo(long aTiempo)
        {
            java.text.SimpleDateFormat tmpSDF = new java.text.SimpleDateFormat("HH:mm:ss");
                
            String tmpText = "Tiempo transcurrido: " + tmpSDF.format(new java.util.Date(aTiempo));
            getLabelTiempoTranscurrido().setText(tmpText);
    }

Agradecido nuevamente....
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #13  
Antiguo 22-04-2008
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Thumbs up

Bueno amigos, he dado con la solucion googleando un poco, y el asunto esta en que todos los milisegundos comienzan en 1900...por tanto la resta tiempoInicio - tiempoActual estaba dando un offset....por eso comenzaba en 19:00:00 por tanto la solucion que encontre fue la siguiente:

ponerTiempo(tiempoActual - tiempoInicio - 68400000);, donde el numero 68400000 es la cantidad de milisegundos de 19 horas (19*60*60*1000)...

Saludos y hasta la proxima...
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cronómetro invisible panuweb Varios 10 10-07-2007 23:36:22
Mejorar un cronometro kokogua Varios 3 10-12-2006 14:12:57
Cronometro grone35 Varios 4 27-08-2006 19:34:51
Cronometro FGarcia Varios 1 19-01-2006 06:44:46
Cronometro C++ The_Borg C++ Builder 1 31-05-2004 23:01:05


La franja horaria es GMT +2. Ahora son las 22:44:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi