From 56428bf9e99fef605d59220a8561bd680f5011b0 Mon Sep 17 00:00:00 2001 From: Robert Vokac Date: Sat, 3 Feb 2024 02:09:20 +0000 Subject: [PATCH] Added new improvements --- .../utils/timecalc/main/TimeCalcWindow.java | 25 ++++++++----------- .../timecalc/utils/TimeHoursMinutes.java | 20 ++++++++++++--- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java index 0d5c049..b0f725c 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java +++ b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java @@ -47,13 +47,13 @@ public class TimeCalcWindow { public static final String WALL = "||"; private static final int MARGIN = 10; + private final String windowTitle; private final int totalMinutes; private final Set alreadyShownPercents = new HashSet<>(); private final TimeHoursMinutes startTime; private final TimeHoursMinutes overtime; - private int endHour; - private int endMinute; + private final TimeHoursMinutes endTime; private boolean stopBeforeEnd = false; private boolean vtipyShown = false; @@ -69,16 +69,13 @@ public class TimeCalcWindow { this.startTime = new TimeHoursMinutes(startTimeIn); this.overtime = new TimeHoursMinutes(overTimeIn); - this.endHour = startTime.getHour() + Constants.WORKING_HOURS_LENGTH + overtime.getHour(); - this.endMinute = startTime.getMinute() + Constants.WORKING_MINUTES_LENGTH + overtime.getMinute(); - while (endMinute >= 60) { - endMinute = endMinute - 60; - endHour = endHour + 1; - } + this.endTime = new TimeHoursMinutes(startTime.getHour() + Constants.WORKING_HOURS_LENGTH + overtime.getHour(), + startTime.getMinute() + Constants.WORKING_MINUTES_LENGTH + overtime.getMinute()); + this.totalMinutes = - (endHour * 60 + endMinute) - (startTime.getHour() * 60 + startTime.getMinute()); + (this.endTime.getHour() * TimeHoursMinutes.MINUTES_PER_HOUR + this.endTime.getMinute()) - (startTime.getHour() * TimeHoursMinutes.MINUTES_PER_HOUR + startTime.getMinute()); int totalSeconds = totalMinutes * 60; - int totalMilliseconds = totalSeconds * 1000; + int totalMilliseconds = totalSeconds * TimeHoursMinutes.MILLISECONDS_PER_SECOND; @@ -421,8 +418,8 @@ public class TimeCalcWindow { int minuteNow = Integer.parseInt(nowString.split(":")[1]); int secondNow = Integer.parseInt(nowString.split(":")[2]); int millisecondNow = Integer.parseInt(nowString.split(":")[3]); - int hourRemains = endHour - hourNow; - int minuteRemains = endMinute - minuteNow; + int hourRemains = endTime.getHour() - hourNow; + int minuteRemains = endTime.getMinute() - minuteNow; if (minuteRemains < 0) { minuteRemains = minuteRemains + 60; hourRemains = hourRemains - 1; @@ -498,8 +495,8 @@ public class TimeCalcWindow { + NumberFormats.FORMATTER_THREE_DECIMAL_PLACES .format(totalSecondsRemainsDouble - 60) + " s" + ")" + " End=" + String - .format("%02d", endHour) + ":" + String - .format("%02d", endMinute); + .format("%02d", endTime.getHour()) + ":" + String + .format("%02d", endTime.getMinute()); //if(System.getProperty("progress")!=null) { printPercentToAscii(done, msg, sb); diff --git a/src/main/java/org/nanoboot/utils/timecalc/utils/TimeHoursMinutes.java b/src/main/java/org/nanoboot/utils/timecalc/utils/TimeHoursMinutes.java index 0f2fa23..071d13c 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/utils/TimeHoursMinutes.java +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/TimeHoursMinutes.java @@ -1,17 +1,20 @@ package org.nanoboot.utils.timecalc.utils; import lombok.Getter; +import lombok.Setter; /** * @author Robert * @since 21.02.2024 */ public class TimeHoursMinutes { + public static final int MINUTES_PER_HOUR = 60; + public static final int MILLISECONDS_PER_SECOND = 1000; - @Getter - private final Integer hour; - @Getter - private final Integer minute; + @Getter @Setter + private Integer hour; + @Getter @Setter + private Integer minute; public TimeHoursMinutes(String string) { boolean isNegative = string.startsWith("-"); @@ -22,4 +25,13 @@ public class TimeHoursMinutes { this.hour = (isNegative ? (-1) : 1) * Integer.valueOf(array[0]); this.minute = (isNegative ? (-1) : 1) * Integer.valueOf(array[1]); } + + public TimeHoursMinutes(int hourIn, int minuteIn) { + this.hour = hourIn; + this.minute = minuteIn; + while (minute >= MINUTES_PER_HOUR) { + minute = minute - MINUTES_PER_HOUR; + hour = hour + 1; + } + } }