From f8ed1d185ba6310ec385f831da39eba54efc78f9 Mon Sep 17 00:00:00 2001 From: fabianArbeit Date: Mon, 7 Jul 2025 09:02:47 +0200 Subject: [PATCH] truncate (almost) all datetimes to minutes for more precise calculation --- LoadingBar.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/LoadingBar.java b/LoadingBar.java index 3a32d5f..f70c28b 100644 --- a/LoadingBar.java +++ b/LoadingBar.java @@ -77,7 +77,7 @@ public class LoadingBar { var br = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8)); System.out.print("Ankunftszeit: "); String startTimeRaw = br.readLine(); - var startTime = LocalTime.parse(startTimeRaw, TIME_FORMATTER); + var startTime = LocalTime.parse(startTimeRaw, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); handleMittagspause(br, startTime); handleZapfenstreich(br, startTime); } @@ -95,7 +95,7 @@ public class LoadingBar { System.out.print("Mittagspause um (optional): "); String manualMittagspauseRaw = br.readLine(); if (manualMittagspauseRaw != null && !manualMittagspauseRaw.isBlank()) { - var manualMittagspause = LocalTime.parse(manualMittagspauseRaw, TIME_FORMATTER); + var manualMittagspause = LocalTime.parse(manualMittagspauseRaw, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); showLoadingBarMittagspause(startTime, manualMittagspause); } else { showLoadingBarMittagspause(startTime); @@ -122,7 +122,7 @@ public class LoadingBar { String manualZapfenstreichRaw = br.readLine(); LocalTime manualZapfenstreich = null; if (manualZapfenstreichRaw != null && !manualZapfenstreichRaw.isBlank()) { - manualZapfenstreich = LocalTime.parse(manualZapfenstreichRaw, TIME_FORMATTER); + manualZapfenstreich = LocalTime.parse(manualZapfenstreichRaw, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); showLoadingBarZapfenstreich(startTime, mittagspauseDuration, manualZapfenstreich); return; } @@ -138,7 +138,7 @@ public class LoadingBar { } verifyMinimumNumberOfArgs(args); verifyTimeFormat(nextArg, "Erstes Argument"); - var startTime = LocalTime.parse(nextArg, TIME_FORMATTER); + var startTime = LocalTime.parse(nextArg, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); nextArg = args[1]; var section = DaySection.byParam(nextArg); verifyDaySection(section, nextArg); @@ -161,7 +161,7 @@ public class LoadingBar { return; } verifyTimeFormat(nextArg, "Argument nach " + DaySection.MITTAG.getParam()); - var manualMittagspause = LocalTime.parse(nextArg, TIME_FORMATTER); + var manualMittagspause = LocalTime.parse(nextArg, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); showLoadingBarMittagspause(startTime, manualMittagspause); } @@ -176,7 +176,7 @@ public class LoadingBar { int endTimeOffset = 0; Integer lunchDuration = null; if (TIME_PATTERN.matcher(nextArg).matches()) { - maxZapfenstreich = LocalTime.parse(nextArg, TIME_FORMATTER); + maxZapfenstreich = LocalTime.parse(nextArg, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); } else if (OFFSET_PATTERN.matcher(nextArg).matches()) { endTimeOffset = Integer.parseInt(nextArg); } else { @@ -200,7 +200,7 @@ public class LoadingBar { } if (maxZapfenstreich == null && !OFFSET_PATTERN.matcher(nextArg).matches()) { verifyTimeFormat(nextArg, "Letztes Argument nach " + DaySection.ZAPFENSTREICH.getParam() + " und Mittagspausendauer"); - maxZapfenstreich = LocalTime.parse(nextArg, TIME_FORMATTER); + maxZapfenstreich = LocalTime.parse(nextArg, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); showLoadingBarZapfenstreich(startTime, lunchDuration, maxZapfenstreich); return; }