Hallo,
ich möchte mir eine Stoppuhr basteln.
Hab allerdigs grad bei dem Pausieren Probleme.
Funktionen, die realisiert werden sollen:
- Starten
- gänzlich Stoppen
- lediglich Pausieren
- nach dem Pausieren wieder aufnehmen oder gleich gänzlich stoppen
- als Variablen dafür müssten theoretisch 3 reichen...
mein jetziger Code:
Das Starten und dann gleich Stoppen scheint zu funktionieren.
Pausiere ich jedoch und nehme irgendwann wieder auf, pausiere dann wieder etc. erhalte ich falsche Werte als Ergebnis.
Irgendwie rechne ich sicherlich falsch und setze die Variablen falsch. Find nur grad den Fehler nicht.
Danke fürds duchgucken!
ich möchte mir eine Stoppuhr basteln.
Hab allerdigs grad bei dem Pausieren Probleme.
Funktionen, die realisiert werden sollen:
- Starten
- gänzlich Stoppen
- lediglich Pausieren
- nach dem Pausieren wieder aufnehmen oder gleich gänzlich stoppen
- als Variablen dafür müssten theoretisch 3 reichen...
mein jetziger Code:
Code:
import java.text.SimpleDateFormat;
import java.util.TimeZone;
/**
* @version 12.10.2007
*
* Die Klasse dient zum Messen der Zeit.
*/
public class TimeStopping {
private long startTime, endTime, wholeTime;
private boolean paused;
public TimeStopping() {
startTime = 0;
endTime = 0;
wholeTime = 0;
}
/**
* Gibt zurück, ob ein Projekt pausiert wurde.
* @return true, wenn das ausgewählte Projekt pausiert ist
*/
public boolean isPaused() {
return paused;
}
public void start() {
if (startTime == 0 && paused == false) {
startTime = System.currentTimeMillis();
}
}
public void stop() {
if (startTime != 0) {
if (!paused)
endTime = System.currentTimeMillis();
wholeTime = wholeTime + (endTime - startTime);
}
}
public void pause() {
if (startTime != 0 && paused == false) {
endTime = System.currentTimeMillis();
wholeTime = wholeTime + (endTime - startTime);
paused = true;
}
}
public void resume() {
if (paused == true) {
startTime = endTime;
paused = false;
}
}
public void result() {
if (startTime != 0) {
TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.print("Gesamtzeit: " + sdf.format(wholeTime));
startTime = 0;
endTime = 0;
wholeTime = 0;
paused = false;
}
}
}
Das Starten und dann gleich Stoppen scheint zu funktionieren.
Pausiere ich jedoch und nehme irgendwann wieder auf, pausiere dann wieder etc. erhalte ich falsche Werte als Ergebnis.
Irgendwie rechne ich sicherlich falsch und setze die Variablen falsch. Find nur grad den Fehler nicht.
Danke fürds duchgucken!