View Full Version : [java]gestione del tempo...idee?
misterxxitalia
21-09-2008, 21:01
ciao a tutti ho bisogno di creare un metodo che preso l'ora di adesso e presa un'altra ora mi faccia il coutdown...
esempio:
ora adesso 10,45
ora finale 11,45
coutdown con ritorno dei minuti mancanti...mi date una mano?grazie!
Oceans11
21-09-2008, 22:24
Dai un'occhiata alla classe Timer (http://java.sun.com/javase/6/docs/api/javax/swing/Timer.html) di swing e vedi se fa al caso tuo.
yorkeiser
22-09-2008, 11:36
Questa è un'idea per un contatore alla rovescia, usando un Thread.
class contatore implements Runnable
{
int minuti;
contatore (int a)
{
this.minuti=a;
}
public void run()
{
for (int i=0; i<minuti; i++)
{
System.out.println(minuti-i);
try
{
Thread.sleep(60000);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
}
Ti posto anche una classe di test con cui chiamarla, ovviamente il valore del costruttore va inizializzato in base alle tue esigenze
class test
{
static GregorianCalendar gc1,gc2;
public static void main (String[] args)
{
gc1 = new GregorianCalendar(2008,1,1,1,1,1); //anno,mese,giorno,ore,minuti,secondi
gc2 = new GregorianCalendar(2008,1,1,1,6,1);
int differenza = gc2.get(gc2.MINUTE) - gc1.get(gc1.MINUTE);
(new contatore(differenza)).run();
}
}
misterxxitalia
22-09-2008, 20:08
grazie della risposta!sviluppando il codice ho notato che ho bisogno di una cosa molto piu semplice!inizio un contatore che parte ha zero ed ogni volta che passa di 1 minuto il contatore aumenta di uno...
for (int i=0; i<minuti; i++)
{
System.out.println(minuti-i);
try
{
Thread.sleep(60000);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
questo for viene aumentato ogni 60000 secondi giusto?
Oceans11
23-09-2008, 08:59
questo for viene aumentato ogni 60000 secondi giusto?
no! sono millisecondi, quindi 60 secondi. E per essere più precisi il "for" per 60 secondi è "dormiente", ma non è detto che proprio al 61-esimo riprenda il ciclo
misterxxitalia
23-09-2008, 10:18
se non ho capito male questa è una classe astratta giusto?e allora mi sono riscritto il metodo run()
public void run()
{
boolean cicla=false;
do
{
cicla = false;
for (int i=0; i<minuti; i++)
{
parametri a = new parametri();
String data = a.DataCorrente();
int minrim = minuti-i;
try
{
Thread.sleep(60000);
a.scrivi(a.documpermessi(data, ""+60, ""+minrim));
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
while(cicla);
}
il metodo funziona è tt ok..quello che vi chiedo è come faccio ad avere altri input in quel metodo?mi spiego meglio...
a.scrivi(a.documpermessi(data, ""+60, ""+minrim));
60 mi deve essere fornito in input e
for (int i=0; i<minuti; i++)
i deve partire non sempre da 0 ma da un numero che decido io..mi devo definire altri costruttori?come faccio?scusate ma sto imparando ora ad usare le classi astratte!
misterxxitalia
23-09-2008, 10:27
se non ho capito male questa è una classe astratta giusto?e allora mi sono riscritto il metodo run()
public void run()
{
boolean cicla=false;
do
{
cicla = false;
for (int i=0; i<minuti; i++)
{
parametri a = new parametri();
String data = a.DataCorrente();
int minrim = minuti-i;
try
{
Thread.sleep(60000);
a.scrivi(a.documpermessi(data, ""+60, ""+minrim));
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
while(cicla);
}
il metodo funziona è tt ok..quello che vi chiedo è come faccio ad avere altri input in quel metodo?mi spiego meglio...
a.scrivi(a.documpermessi(data, ""+60, ""+minrim));
60 mi deve essere fornito in input e
for (int i=0; i<minuti; i++)
i deve partire non sempre da 0 ma da un numero che decido io..mi devo definire altri costruttori?come faccio?scusate ma sto imparando ora le classi astratte!
Oceans11
23-09-2008, 11:40
come faccio ad avere altri input in quel metodo?mi spiego meglio...
a.scrivi(a.documpermessi(data, ""+60, ""+minrim));
60 mi deve essere fornito in input e
for (int i=0; i<minuti; i++)
i deve partire non sempre da 0 ma da un numero che decido io..mi devo definire altri costruttori?come faccio?scusate ma sto imparando ora le classi astratte!
te l'hanno già spiegato:
Questa è un'idea per un contatore alla rovescia, usando un Thread.
class contatore implements Runnable
{
int minuti;
contatore (int a)
{
this.minuti=a;
}
public void run()
{
for (int i=0; i<minuti; i++)
{
System.out.println(minuti-i);
try
{
Thread.sleep(60000);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
}
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.