Added new improvements

This commit is contained in:
Robert Vokac 2024-02-03 02:09:20 +00:00
parent 83f4e130a2
commit 56428bf9e9
No known key found for this signature in database
GPG Key ID: 693D30BEE3329055
2 changed files with 27 additions and 18 deletions

View File

@ -47,13 +47,13 @@ public class TimeCalcWindow {
public static final String WALL = "||"; public static final String WALL = "||";
private static final int MARGIN = 10; private static final int MARGIN = 10;
private final String windowTitle; private final String windowTitle;
private final int totalMinutes; private final int totalMinutes;
private final Set<Integer> alreadyShownPercents = new HashSet<>(); private final Set<Integer> alreadyShownPercents = new HashSet<>();
private final TimeHoursMinutes startTime; private final TimeHoursMinutes startTime;
private final TimeHoursMinutes overtime; private final TimeHoursMinutes overtime;
private int endHour; private final TimeHoursMinutes endTime;
private int endMinute;
private boolean stopBeforeEnd = false; private boolean stopBeforeEnd = false;
private boolean vtipyShown = false; private boolean vtipyShown = false;
@ -69,16 +69,13 @@ public class TimeCalcWindow {
this.startTime = new TimeHoursMinutes(startTimeIn); this.startTime = new TimeHoursMinutes(startTimeIn);
this.overtime = new TimeHoursMinutes(overTimeIn); this.overtime = new TimeHoursMinutes(overTimeIn);
this.endHour = startTime.getHour() + Constants.WORKING_HOURS_LENGTH + overtime.getHour(); this.endTime = new TimeHoursMinutes(startTime.getHour() + Constants.WORKING_HOURS_LENGTH + overtime.getHour(),
this.endMinute = startTime.getMinute() + Constants.WORKING_MINUTES_LENGTH + overtime.getMinute(); startTime.getMinute() + Constants.WORKING_MINUTES_LENGTH + overtime.getMinute());
while (endMinute >= 60) {
endMinute = endMinute - 60;
endHour = endHour + 1;
}
this.totalMinutes = 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 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 minuteNow = Integer.parseInt(nowString.split(":")[1]);
int secondNow = Integer.parseInt(nowString.split(":")[2]); int secondNow = Integer.parseInt(nowString.split(":")[2]);
int millisecondNow = Integer.parseInt(nowString.split(":")[3]); int millisecondNow = Integer.parseInt(nowString.split(":")[3]);
int hourRemains = endHour - hourNow; int hourRemains = endTime.getHour() - hourNow;
int minuteRemains = endMinute - minuteNow; int minuteRemains = endTime.getMinute() - minuteNow;
if (minuteRemains < 0) { if (minuteRemains < 0) {
minuteRemains = minuteRemains + 60; minuteRemains = minuteRemains + 60;
hourRemains = hourRemains - 1; hourRemains = hourRemains - 1;
@ -498,8 +495,8 @@ public class TimeCalcWindow {
+ NumberFormats.FORMATTER_THREE_DECIMAL_PLACES + NumberFormats.FORMATTER_THREE_DECIMAL_PLACES
.format(totalSecondsRemainsDouble - 60) .format(totalSecondsRemainsDouble - 60)
+ " s" + ")" + " End=" + String + " s" + ")" + " End=" + String
.format("%02d", endHour) + ":" + String .format("%02d", endTime.getHour()) + ":" + String
.format("%02d", endMinute); .format("%02d", endTime.getMinute());
//if(System.getProperty("progress")!=null) { //if(System.getProperty("progress")!=null) {
printPercentToAscii(done, msg, sb); printPercentToAscii(done, msg, sb);

View File

@ -1,17 +1,20 @@
package org.nanoboot.utils.timecalc.utils; package org.nanoboot.utils.timecalc.utils;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
/** /**
* @author Robert * @author Robert
* @since 21.02.2024 * @since 21.02.2024
*/ */
public class TimeHoursMinutes { public class TimeHoursMinutes {
public static final int MINUTES_PER_HOUR = 60;
public static final int MILLISECONDS_PER_SECOND = 1000;
@Getter @Getter @Setter
private final Integer hour; private Integer hour;
@Getter @Getter @Setter
private final Integer minute; private Integer minute;
public TimeHoursMinutes(String string) { public TimeHoursMinutes(String string) {
boolean isNegative = string.startsWith("-"); boolean isNegative = string.startsWith("-");
@ -22,4 +25,13 @@ public class TimeHoursMinutes {
this.hour = (isNegative ? (-1) : 1) * Integer.valueOf(array[0]); this.hour = (isNegative ? (-1) : 1) * Integer.valueOf(array[0]);
this.minute = (isNegative ? (-1) : 1) * Integer.valueOf(array[1]); 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;
}
}
} }