Verbesserung der Zeiterfassung nach Team gespräch

pull/2/head
Leon Löhle 2025-01-06 18:14:47 +01:00
parent e832fc5f6f
commit 7b77f7b381
1 changed files with 27 additions and 30 deletions

View File

@ -1,41 +1,38 @@
package de.deversmann.domain;
public class Zeiterfassung {
private long startzeit;
private long endzeit;
private boolean laufen;
private long startTime;
private long endTime;
private boolean isRunning;
public Zeiterfassung() {
this.isRunning = false;
}
public void start() {
this.startzeit = System.currentTimeMillis();
this.laufen= true;
if (!isRunning) {
startTime = System.currentTimeMillis();
isRunning = true;
System.out.println("Zeiterfassung gestartet");
}
}
public void stop() {
this.endzeit = System.currentTimeMillis();
this.laufen= false;
if (isRunning) {
endTime = System.currentTimeMillis();
isRunning = false;
System.out.println("Zeiterfassung gestoppt, diff=" + getElapsedTimeInSeconds() + "s");
}
}
public long getElapsedTimeMillis() {
long endTime = laufen ? System.currentTimeMillis() : endzeit;
return endTime - startzeit;
}
public void reset() {
this.startzeit = 0;
this.endzeit = 0;
this.laufen = false;
}
public String getFormattedTime() {
long elapsed = getElapsedTimeMillis();
long hours = elapsed / (3600_000);
long remainder = elapsed % 3600_000;
long minutes = remainder / 60_000;
remainder = remainder % 60_000;
long seconds = remainder / 1_000;
long millis = remainder % 1_000;
// Formatierung zu einer lesbaren Zeitangabe
return String.format("%02d:%02d:%02d.%03d", hours, minutes, seconds, millis);
public long getElapsedTimeInSeconds() {
if (isRunning) {
long current = System.currentTimeMillis();
return (current - startTime) / 1000;
} else {
return (endTime - startTime) / 1000;
}
}
}