PDA

Ver la Versión Completa : Funcion de tiempo


pedromanuel
25-05-2004, 18:01:06
Hola me gustaria poder utilizar la funcion Time de java, pero no se muy bien como utilizarla.


Esto es lo que viene en la APIS, pero no soy capaz de usarlas:

Time (http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Time.html#Time(long))(long time)
Constructs a Time object using a milliseconds time value.
Time
public Time(long time)
Constructs a Time object using a milliseconds time value.
Parameters:
time - milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT
Lo he intentado de las siguientes formas pero ninguna de ellas me funciona:

1. long tiempo;
long numero=100;
tiempo.Time(numero);
ERROR: Tiempo.java:24: long cannot be dereferenced
fecha.Time(numero);
2. long tiempo;
long numero=100;
tiempo=Time(numero);
ERROR:Tiempo.java:24: cannot resolve symbol
symbol : method Time (long)
location: class Tiempo
fecha=Time(numero);
3. long tiempo,fecha;
long numero=100;
fecha=tiempo.Time(numero);
ERROR:Tiempo.java:25: long cannot be dereferenced
fecha=fecha2.Time(numero);
4.tiempo = new long[10];
long numero=100;
tiempo=Time(numero);
ERROR: Tiempo.java:19: cannot resolve symbol
symbol : variable fecha
location: class Tiempo
fecha = new long[10];
^
Tiempo.java:24: cannot resolve symbol
symbol : variable fecha
location: class Tiempo
fecha=Time(numero);
^
Tiempo.java:24: cannot resolve symbol
symbol : method Time (long)
location: class Tiempo
fecha=Time(numero);
^
3 errors


No se me ocurre como hacerlo.

Muchas Gracias

santana
25-05-2004, 22:47:22
:)

Hola, Pedro Manuel. Ante todo, bienvenido a estos foros.

El problema está en que tienes que crearte el objeto tiempo.



long milisegundos=100000;
tiempo=new Time (milisegundos);

Time es una clase que pertenece al paquete java.sql y que hereda de la clase Date. El parámetro que recibe son los milisegundos.

Tal vez lo veas más claro aquí. (http://www.flex-compiler.lcs.mit.edu/Harpoon/srcdoc/java/sql/Time.html)

Un saludo.

pedromanuel
02-06-2004, 19:43:15
Hola, necesito hacer una cosa muy facil aparentemente pero que no soy capaz de implementar.

Necesito hacer un pequeño bucle que dure un minuto por ejemplo y dentro de el ejecute un programa, y posteriormente otro bucle que dure un minuto tambien en el que no haga nada el programa.

He hecho lo siguiente pero no me funciona:

int i=9000,j=0;
Time tiempo,nuevo,suma;
long pri=1,seg=2,sum=3,asignartiempo=9000;

tiempo = new Time(asignartiempo);
nuevo = new Time(asignartiempo);

System.out.println("Ahora se Activa el programa");
while (tiempo.equals(nuevo))
{
//ASIGNO AL NUEVO Y A TIEMPO EL VALOR ASIGNARTIEMPO
nuevo = new Time(asignartiempo);
tiempo = new Time(asignartiempo);
//INCREMENTO EL VALOR DE ASIGNARTIEMPO
asignartiempo++;
//INCREMENTO i PARA QUE QUE EL BUCLE SOLO PARE EN I=69000
i++;
if (i == 69000)
{asignartiempo++;
nuevo = new Time(asignartiempo);
}
System.out.println("");
}

//VUELVO A INICIALIZAR LOS DATOS PARA EL BUCLE EN EL QUE ESTE PARADO
asignartiempo=9000;
i=9000;
tiempo = new Time(asignartiempo);
nuevo = new Time(asignartiempo);

System.out.println("Ahora se DESActiva El programa");
while (tiempo.equals(nuevo))
{
nuevo = new Time(asignartiempo);
tiempo = new Time(asignartiempo);
asignartiempo++;
i++;
if (i == 69000)
{asignartiempo++;
nuevo = new Time(asignartiempo);}
}
}
}


Esto me dura lo que tarda en hacer 60000 println pero no 60000 milisegundos, es decir depende de la potencia del ordenador.

Os agradecería mucho si pudieraias ayudarme.

Muchas Gracias

santana
03-06-2004, 00:39:09
Hola, pedromanuel.

Para generar el retardo, puedes utilizar la función estática sleep (long milisegundos) de la clase java.lang.thread



try {
Thread.sleep(60000);
} catch (InterruptedException e) {
}


Para próximas ocasiones, recuerda encerrar tu código entre las etiquetas
[ code ] [ /code ] (sin los espacios) o
pinchando sobre el icono #

Esto sirve para respetar la indentación y hacerlo más legible.

Saludos.

pedromanuel
14-06-2004, 16:39:19
Hola, de nuevo, me gustaria saber si existe alguna forma de indicar además el tiempo que le queda para terminar el tiempo de descanso.

Por ejemplo, en el caso que me has propuesto, dormiría 60 segundos.
¿Podría decirle cada 10 segundos: Te quedan 50 segundos
Te quedan 40 segundos
Te quedan 30 segundos
Te quedan 20 segundos
Te quedan 10 segundos?

Muchas Gracias y perdona de nuevo por las molestias pero es que estoy bastante verde en el tema Java

santana
15-06-2004, 20:19:15
Entonces lo más conveniente es que primero te prepares con algún buen libro de Java (http://www.ibiblio.org/javafaq/books.html) y después te pongas a programar.

Si lo que necesitas es información del tiempo transcurrido cada diez segundos, haz un bucle que recorrerás 6 veces haciendo dentro un sleep de 10000 milisegundos, y solo tendrás que capturar en una variable el número de vuelta para saber cuandos milisegundos faltan hasta los 60000.

Saludos.

gonzalza
28-11-2006, 06:10:34
1.tu sabes como generar un retardo de una instruccion de codigo a otro en delphi
ejemplo delay o sleep en c++. aproposito si conocen la libreria de delay y sleep en visual c++6 le agradezco.

gonzalza
29-11-2006, 00:00:58
creo que ya consegui hacer eso, no he practicado con puerto paralelo pero lo practique con Button.visible y me dio resultado utilizando un timer para cada instrucción con tiempos distinos y con un botton activo los timers.
Por ahi bien, ahora necesito otro boton que cuando haga click me llame al anterior las veces que quiera,ej: 4 veces, es decir: que sea como si hubiera presionado el primer boton 4 veces.