From c0d96e2119147fd7b71532ea4b661ceb7265bf6b Mon Sep 17 00:00:00 2001 From: Leon <3010261@stud.hs-mannheim.de> Date: Tue, 10 Dec 2024 15:55:55 +0100 Subject: [PATCH] =?UTF-8?q?Erstellung=20einer=20ersten=20Version=20einer?= =?UTF-8?q?=20Stoppuhr=20f=C3=BCr=20die=20Zeiterfassung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../de/deversmann/domain/Zeiterfassung.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/java/de/deversmann/domain/Zeiterfassung.java diff --git a/src/main/java/de/deversmann/domain/Zeiterfassung.java b/src/main/java/de/deversmann/domain/Zeiterfassung.java new file mode 100644 index 0000000..e58ddcb --- /dev/null +++ b/src/main/java/de/deversmann/domain/Zeiterfassung.java @@ -0,0 +1,41 @@ +package de.deversmann.domain; + +public class Zeiterfassung { + private long startzeit; + private long endzeit; + private boolean laufen; + + public void start() { + this.startzeit = System.currentTimeMillis(); + this.laufen= true; + } + + public void stop() { + this.endzeit = System.currentTimeMillis(); + this.laufen= false; + } + + 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); + } +}