PDA

View Full Version : [JAVA] Settare un oggetto Data ... Che nervosismo ...


leon84
27-06-2006, 15:24
Salve,
sto utilizzando la Classe Timer e TimerTask per eseguire una certa operazione ad intervalli regolari di tempo ...

Ho realizzato la mia classe che estende TimerTask e che implementa all'interno del metodo "run()" le istruzioni per eseguire l'operazione periodica ...

Voglio che l'azione da eseguire periodicamente parta all'istante di tempo t1 e si ripeta ad intervalli regolari di t2 millesimi di secondi ...

Allora per farlo utilizzo il metodo schedule della classe Timer che vuole come parametri :

1) un oggetto data che rappresenta la data e l'ora della prima esecuzione dell Task

2) il task da eseguire : ovviamente gli passo la mia classe che estende TimerTask

3) tempo espresso in millisecondi che rappresenta la periodicità dell'esecuzione ...

il punto è : se mi creo un'istanza della classe Data utilizzando il suo costruttore di default ovviamente Data rappresenta la data e l'ora attuale al momento dell'istanziamento e quindi passandolo a Schedule il task viene eseguito direttamente...
Se invece l'oggeto Data lo costruisco indicando una data futura utilizzando il costruttore che prende giorno mese anno ora e minuti quel task non viene mai eseguito ...

Cosa diavolo può essere ???

thebol
27-06-2006, 16:06
Salve,
sto utilizzando la Classe Timer e TimerTask per eseguire una certa operazione ad intervalli regolari di tempo ...

Ho realizzato la mia classe che estende TimerTask e che implementa all'interno del metodo "run()" le istruzioni per eseguire l'operazione periodica ...

Voglio che l'azione da eseguire periodicamente parta all'istante di tempo t1 e si ripeta ad intervalli regolari di t2 millesimi di secondi ...

Allora per farlo utilizzo il metodo schedule della classe Timer che vuole come parametri :

1) un oggetto data che rappresenta la data e l'ora della prima esecuzione dell Task

2) il task da eseguire : ovviamente gli passo la mia classe che estende TimerTask

3) tempo espresso in millisecondi che rappresenta la periodicità dell'esecuzione ...

il punto è : se mi creo un'istanza della classe Data utilizzando il suo costruttore di default ovviamente Data rappresenta la data e l'ora attuale al momento dell'istanziamento e quindi passandolo a Schedule il task viene eseguito direttamente...
Se invece l'oggeto Data lo costruisco indicando una data futura utilizzando il costruttore che prende giorno mese anno ora e minuti quel task non viene mai eseguito ...

Cosa diavolo può essere ???

posta il codice con cui lo inizializzi.

e attento a non invertire mese e giorno, non mi ricordo se va settato all'europea o all'ammeregana

leon84
27-06-2006, 16:35
posta il codice con cui lo inizializzi.

e attento a non invertire mese e giorno, non mi ricordo se va settato all'europea o all'ammeregana



Timer timer = new Timer();
NoDataCheck nodata = new NoDataCheck();
GregorianCalendar cal = new GregorianCalendar();
Date data = new Date(cal.get(cal.YEAR),cal.get(cal.MONTH),cal.get(cal.DAY_OF_MONTH),Integer.valueOf(cnf.ora_check),Integer.valu
eOf(cnf.minuti_check));
System.out.println(data.getDate() + "/" + (data.getMonth() + 1) + "/" + data.getYear() + " " + data.getHours() + ":" + data.get
Minutes());
timer.schedule(nodata,data,10000);


nodata è di tipo NoDataCheck che estende TimerTask ...

lovaz
28-06-2006, 11:26
Devi mettere:

Date data = new Date(cal.get(cal.YEAR) - 1900, ...

leon84
28-06-2006, 14:26
Devi mettere:

Date data = new Date(cal.get(cal.YEAR) - 1900, ...

Puoi spiegarmi per cortesia ???

Ho provato anche a farmi fare la stampa dell'anno e sembra corretto ...

lovaz
29-06-2006, 09:32
Dalla documentazione javadoc:

year - the year minus 1900.

Anche se quel costruttore sarebbe deprecato.

leon84
29-06-2006, 11:14
Dalla documentazione javadoc:



Anche se quel costruttore sarebbe deprecato.


Ops ... che sbadato ... grazie mille ... ;)