SMoeller
Mitglied
Hallo,
ich hab ma wieder ein kleines Problem, aber nach 3 Stunden programmieren qualmt gerade mein Kopf un ich kann die einfachsten Sachen net mehr lösen. Also, ich SOLL mit System.currentTimeMillis() arbeiten und zwar soll ich da Zeit in Tage und Stunden umrechnen. Da mein Programm ein Simulationsprogramm ist, entspricht 1ms = 1s. Beim Start des Programms frage ich die Zeit ab und speichere diese in einer Variablen. Wenn dann 1Tag rum ist (86400s) zähle ich die Variable tage um eins hoch. Da ich aber nicht einfach so tage um eins hochzählen kann, wenn der Computer auf eine Eingabe wartet, frage ich die Zeit immer erst nach einer Eingabe ab. Die Zeit, die seit dem vergangenem Tag verstrichen ist, muss ich aber wieder zu den Stunden dazuzählen und da liegt irgendwie noch der Fehler. Wenn ein Tag vergangen ist, dann fangen die Stunden irgendwie bei -24 an. Ich stelle hier mal meinen Algorithmus rein, falls noch ein Programmabschnitt benötigt wird, einfach bescheid sagen.
ich hab ma wieder ein kleines Problem, aber nach 3 Stunden programmieren qualmt gerade mein Kopf un ich kann die einfachsten Sachen net mehr lösen. Also, ich SOLL mit System.currentTimeMillis() arbeiten und zwar soll ich da Zeit in Tage und Stunden umrechnen. Da mein Programm ein Simulationsprogramm ist, entspricht 1ms = 1s. Beim Start des Programms frage ich die Zeit ab und speichere diese in einer Variablen. Wenn dann 1Tag rum ist (86400s) zähle ich die Variable tage um eins hoch. Da ich aber nicht einfach so tage um eins hochzählen kann, wenn der Computer auf eine Eingabe wartet, frage ich die Zeit immer erst nach einer Eingabe ab. Die Zeit, die seit dem vergangenem Tag verstrichen ist, muss ich aber wieder zu den Stunden dazuzählen und da liegt irgendwie noch der Fehler. Wenn ein Tag vergangen ist, dann fangen die Stunden irgendwie bei -24 an. Ich stelle hier mal meinen Algorithmus rein, falls noch ein Programmabschnitt benötigt wird, einfach bescheid sagen.
Code:
public void pruefeZeit()
{
if (System.currentTimeMillis() - zeitStart >= 86400)
{
zeitStart = System.currentTimeMillis() + (System.currentTimeMillis() -
zeitStart);
neuerTag();
}
}
public int berechneStd()
{
int std;
zeitStop = System.currentTimeMillis() - zeitStart;
std = (int) zeitStop/3600;
return std;
}