ciao a tutti.
la mia applicazione deve eseguire su un database una stored procedure ad un determinato orario
la funzione per ottenere i millisecondi da aspettare (comprensivo del conto delle 24 ore)
e' la seguente:
codice:
long timeout;
Calendar now = new GregorianCalendar();
Calendar startsAt = new GregorianCalendar(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DATE),time,0,0);
if (now.before(startsAt)){
timeout = (startsAt.getTimeInMillis() - now.getTimeInMillis());
} else {
long day = 86400000L;
timeout = ( day - (now.getTimeInMillis() - startsAt.getTimeInMillis()));
}
return timeout;
time e' un intero che va da 0 a 23.
questa funzione viene richiamata ogni volta che la stored procedure termina, cosi' da risettare il timer considerando anche il tempo di esecuzione della procedura. il problema e' che dopo 4 giorni ha anticipato di 30 minuti e rotti l'ora di esecuzione... aiuto?