Millisekunden bis zur nächsten vollen Stunde

Status
Nicht offen für weitere Antworten.

Clip

Bekanntes Mitglied
Hallo,

wie kann ich die Millisekunden zur nächsten vollen Stunde berechnen?
Ich möchte pünktlich zu jeder vollen Stunde eine Aktion ausführen.

Danke!
 
S

SlaterB

Gast
Zeit in einen Calendar reinschreiben,
Minute, Sekunde, Millisekunde auf 0 setzen,
+1 Stunde,
Zeit in Millisekunden extrahieren, mit aktuellen Wert vergleichen
 

Murray

Top Contributor
Oder:
Zeit in einen Calendar reinschreiben,
Minute, Sekunde, Millisekunde auf 0 setzen,
+1 Stunde,
mit Calendar#getTime passendes Date-Objekt holen,
dieses Date-Objekt als zweiten Parameter für Time#scheduleAtFixedRate verwenden (der dritte Parameter muss dann 60*60*1000 sein).
 

Clip

Bekanntes Mitglied
Ich habe noch eine komfortablere Methode gefunden.
Im Prinzip reicht es die Millisekunden der Systemzeit modulo der Millisekunden des gewünschten Offsets zu nehmen.

Millisekundendekraration:
Code:
private static final long HOUR = 1000 * 60 * 60;
private static final long DAY = 1000 * 60 * 60 * 24;
private static final long WEEK = 1000 * 60 * 60 * 24 * 7;

Der Aufruf:
Code:
intervall = DAY;		
offset = getOffset(DAY);

die Methode:
Code:
private long getOffset(long interval){
  long sysTime = System.currentTimeMillis() + TimeZone.getDefault().getRawOffset();
  long delay = interval - sysTime % interval;
  return delay;		
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben