diff --git a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/AbstractLoadingBar.java b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/AbstractLoadingBar.java index 69f4726..af3c80a 100644 --- a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/AbstractLoadingBar.java +++ b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/AbstractLoadingBar.java @@ -45,7 +45,7 @@ public abstract class AbstractLoadingBar { } - protected final void setEndTime(LocalTime endTime) { + public final void setEndTime(LocalTime endTime) { this.endTime = endTime; this.totalMinutes = startTime.until(endTime, ChronoUnit.MINUTES); this.totalMinutesBD = BigDecimal.valueOf(totalMinutes); @@ -74,12 +74,12 @@ public abstract class AbstractLoadingBar { } - protected long getPassedMinutes() { + public long getPassedMinutes() { return getPassedMinutes(false); } - protected long getPassedMinutes(boolean passedMinutesZero) { + public long getPassedMinutes(boolean passedMinutesZero) { return passedMinutesZero ? 0 : startTime.until(LocalTime.now().truncatedTo(ChronoUnit.MINUTES), ChronoUnit.MINUTES); } diff --git a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/DrinkingBar.java b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/DrinkingBar.java index 13b6790..7020a75 100644 --- a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/DrinkingBar.java +++ b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/DrinkingBar.java @@ -2,6 +2,7 @@ package de.szimnau.zeitlaeufer; import de.szimnau.zeitlaeufer.tools.CommonTools; import de.szimnau.zeitlaeufer.tools.FormatTools; +import de.szimnau.zeitlaeufer.tools.LoadingBarCliTools; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; @@ -16,7 +17,7 @@ import java.time.temporal.ChronoUnit; import static de.szimnau.zeitlaeufer.tools.CommonTools.print; -public class DrinkingBar extends AbstractLoadingBar { +public class DrinkingBar extends AbstractLoadingBar implements WorkdayLoadingBar { private static final int MINS_PER_HALF_HOUR = CommonTools.MINS_PER_HOUR / 2; private static final int MINUTES_BEFORE_PAUSE = 4 * CommonTools.MINS_PER_HOUR + MINS_PER_HALF_HOUR; @@ -30,21 +31,21 @@ public class DrinkingBar extends AbstractLoadingBar { private BigDecimal totalLitres; - public static void main(String[] args) throws IOException { - var br = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8)); - print("Ankunftszeit: "); - var startTime = LocalTime.parse(br.readLine(), FormatTools.TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); - var db = new DrinkingBar(startTime); - db.showLoadingBar(); - } - - protected DrinkingBar(LocalTime startTime) { super(startTime, DEFAULT_TOTAL_TIME); this.totalLitres = DEFAULT_TOTAL_LITRES; } + public static void main(String[] args) throws IOException { + if (args.length == 0) { + LoadingBarCliTools.askParametersAndRun(DrinkingBar::new); + } else { + LoadingBarCliTools.parseParametersAndRun(args, DrinkingBar::new); + } + } + + @Override protected void extraInitEndTimeTotalMinutes() { // correct necessary litres to drink based on the end time. @@ -56,7 +57,7 @@ public class DrinkingBar extends AbstractLoadingBar { do { calcTotalLitres = calcTotalLitres.subtract(QUARTER_LITRE); } while (calcTotalLitres.compareTo(totalLitresFromMinutes) >= 0); - // add quarter since we always did a step "too many", due to the do ... while loop + // add quarter since we always did a step "too many", due to the "do ... while" loop this.totalLitres = calcTotalLitres.add(QUARTER_LITRE); } diff --git a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/LoadingBar.java b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/LoadingBar.java index 4fef0f4..0e3526f 100644 --- a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/LoadingBar.java +++ b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/LoadingBar.java @@ -1,24 +1,12 @@ package de.szimnau.zeitlaeufer; -import de.szimnau.zeitlaeufer.tools.CommonTools; -import de.szimnau.zeitlaeufer.tools.FormatTools; import de.szimnau.zeitlaeufer.tools.LoadingBarCliTools; import java.io.IOException; import java.time.LocalTime; -import java.time.temporal.ChronoUnit; import java.util.*; -import static de.szimnau.zeitlaeufer.tools.CommonTools.print; - - -public class LoadingBar extends AbstractProgressBar { - - public static final long MAX_NUMBER_WORK_MINS = 8L * CommonTools.MINS_PER_HOUR; - public static final int MIN_LUNCH_DURATION = 30; - public static final LocalTime LATEST_LUNCH_TIME = LocalTime.of(13, 30); - public static final int MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH = 6 * CommonTools.MINS_PER_HOUR; - protected static final long DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH = 5L * CommonTools.MINS_PER_HOUR; +public class LoadingBar extends AbstractProgressBar implements WorkdayLoadingBar { protected LoadingBar(LocalTime startTime) { super(startTime); @@ -32,108 +20,4 @@ public class LoadingBar extends AbstractProgressBar { LoadingBarCliTools.parseParametersAndRun(args, LoadingBar::new); } } - - - public boolean hasMittagspauseArrived() { - return hasMittagspauseArrived(false); - } - - - public boolean hasMittagspauseArrived(boolean debugWithPassedMinutesZero) { - return getPassedMinutes(debugWithPassedMinutesZero) < DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH; - } - - - public void initMittagspause() { - LocalTime defaultEndTime = getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH); - realInitMittagspause(defaultEndTime); - } - - - public void initMittagspause(int endTimeOffset) { - LocalTime offsetEndTime = getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH + endTimeOffset); - realInitMittagspause(offsetEndTime); - } - - - public void initMittagspause(LocalTime manualEndTime) { - LocalTime effectiveEndTime = manualEndTime != null ? manualEndTime : getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH); - realInitMittagspause(effectiveEndTime); - } - - - private void realInitMittagspause(LocalTime theoreticalEndTime) { - setEndTime(theoreticalEndTime.isAfter(LATEST_LUNCH_TIME) ? LATEST_LUNCH_TIME : theoreticalEndTime); - } - - - public void initZapfenstreich() { - LocalTime trueEndTime = getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + MIN_LUNCH_DURATION); - realInitZapfenstreich(MIN_LUNCH_DURATION, trueEndTime); - } - - - public void initZapfenstreich(Integer manualLunchDuration) { - initZapfenstreich(manualLunchDuration, 0); - } - - - public void initZapfenstreich(Integer manualLunchDuration, int endTimeOffset) { - long minLunchDuration = getMinLunchDuration(endTimeOffset); - long realLunchDuration = getRealLunchDuration(manualLunchDuration, minLunchDuration); - LocalTime trueEndTime = getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + realLunchDuration + endTimeOffset); - realInitZapfenstreich(realLunchDuration, trueEndTime); - } - - - public void initZapfenstreich(Integer manualLunchDuration, LocalTime manualEndTime) { - LocalTime trueEndTime = manualEndTime; - long minLunchDuration = getMinLunchDuration(trueEndTime); - long realLunchDuration = getRealLunchDuration(manualLunchDuration, minLunchDuration); - if (trueEndTime == null) { - trueEndTime = getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + realLunchDuration); - } - realInitZapfenstreich(realLunchDuration, trueEndTime); - } - - - private long getMinLunchDuration(int endTimeOffset) { - if (endTimeOffset <= 0) { - return MIN_LUNCH_DURATION; - } - long totalDuration = MAX_NUMBER_WORK_MINS + endTimeOffset; - return getMinLunchDuration(totalDuration); - } - - - private long getMinLunchDuration(LocalTime manualEndTime) { - if (manualEndTime == null) { - return MIN_LUNCH_DURATION; - } - long totalDuration = getStartTime().until(manualEndTime, ChronoUnit.MINUTES); - return getMinLunchDuration(totalDuration); - } - - - private long getMinLunchDuration(long precalculatedTotalDuration) { - long effectiveLunchDuration = precalculatedTotalDuration - MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH; - if (effectiveLunchDuration < 0) { - effectiveLunchDuration = 0; - } - return Math.min(effectiveLunchDuration, MIN_LUNCH_DURATION); - } - - - private long getRealLunchDuration(Integer manualLunchDuration, long minLunchDuration) { - return manualLunchDuration != null && manualLunchDuration >= minLunchDuration ? manualLunchDuration : minLunchDuration; - } - - - private void realInitZapfenstreich(long effectiveLunchDuration, LocalTime effectiveEndTime) { - if (effectiveLunchDuration > 0) { - var totalWorkTime = LocalTime.MIDNIGHT.plusMinutes(getStartTime().until(effectiveEndTime, ChronoUnit.MINUTES) - effectiveLunchDuration); - print("Arbeitszeit: " + FormatTools.TIME_FORMATTER.format(totalWorkTime) + "; "); - } - setEndTime(effectiveEndTime); - } } diff --git a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/WorkLoadingBar.java b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/WorkLoadingBar.java index de0a95f..32fafc3 100644 --- a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/WorkLoadingBar.java +++ b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/WorkLoadingBar.java @@ -5,7 +5,7 @@ import java.io.IOException; import java.time.LocalTime; -public class WorkLoadingBar extends LoadingBar { +public class WorkLoadingBar extends AbstractLoadingBar implements WorkdayLoadingBar { private final LoadingBar loadingBar; private final DrinkingBar drinkingBar; diff --git a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/WorkdayLoadingBar.java b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/WorkdayLoadingBar.java new file mode 100644 index 0000000..4a64b81 --- /dev/null +++ b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/WorkdayLoadingBar.java @@ -0,0 +1,134 @@ +package de.szimnau.zeitlaeufer; + +import de.szimnau.zeitlaeufer.tools.CommonTools; +import de.szimnau.zeitlaeufer.tools.FormatTools; +import java.time.LocalTime; +import java.time.temporal.ChronoUnit; +import java.util.*; + +import static de.szimnau.zeitlaeufer.tools.CommonTools.print; + + +public interface WorkdayLoadingBar { + + public static final long MAX_NUMBER_WORK_MINS = 8L * CommonTools.MINS_PER_HOUR; + public static final int MIN_LUNCH_DURATION = 30; + public static final LocalTime LATEST_LUNCH_TIME = LocalTime.of(13, 30); + public static final int MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH = 6 * CommonTools.MINS_PER_HOUR; + public static final long DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH = 5L * CommonTools.MINS_PER_HOUR; + + void showLoadingBar(boolean debug, boolean passedMinutesZero); + + + default boolean hasMittagspauseArrived() { + return hasMittagspauseArrived(false); + } + + + default boolean hasMittagspauseArrived(boolean debugWithPassedMinutesZero) { + return getPassedMinutes(debugWithPassedMinutesZero) < DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH; + } + + + long getPassedMinutes(boolean passedMinutesZero); + + + default void initMittagspause() { + LocalTime defaultEndTime = getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH); + realInitMittagspause(defaultEndTime); + } + + + LocalTime getStartTime(); + + + default void initMittagspause(int endTimeOffset) { + LocalTime offsetEndTime = getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH + endTimeOffset); + realInitMittagspause(offsetEndTime); + } + + + default void initMittagspause(LocalTime manualEndTime) { + LocalTime effectiveEndTime = manualEndTime != null ? manualEndTime : getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH); + realInitMittagspause(effectiveEndTime); + } + + + private void realInitMittagspause(LocalTime theoreticalEndTime) { + setEndTime(theoreticalEndTime.isAfter(LATEST_LUNCH_TIME) ? LATEST_LUNCH_TIME : theoreticalEndTime); + } + + + void setEndTime(LocalTime endTime); + + + default void initZapfenstreich() { + LocalTime trueEndTime = getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + MIN_LUNCH_DURATION); + realInitZapfenstreich(MIN_LUNCH_DURATION, trueEndTime); + } + + + default void initZapfenstreich(Integer manualLunchDuration) { + initZapfenstreich(manualLunchDuration, 0); + } + + + default void initZapfenstreich(Integer manualLunchDuration, int endTimeOffset) { + long minLunchDuration = getMinLunchDuration(endTimeOffset); + long realLunchDuration = getRealLunchDuration(manualLunchDuration, minLunchDuration); + LocalTime trueEndTime = getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + realLunchDuration + endTimeOffset); + realInitZapfenstreich(realLunchDuration, trueEndTime); + } + + + default void initZapfenstreich(Integer manualLunchDuration, LocalTime manualEndTime) { + LocalTime trueEndTime = manualEndTime; + long minLunchDuration = getMinLunchDuration(trueEndTime); + long realLunchDuration = getRealLunchDuration(manualLunchDuration, minLunchDuration); + if (trueEndTime == null) { + trueEndTime = getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + realLunchDuration); + } + realInitZapfenstreich(realLunchDuration, trueEndTime); + } + + + private long getMinLunchDuration(int endTimeOffset) { + if (endTimeOffset <= 0) { + return MIN_LUNCH_DURATION; + } + long totalDuration = MAX_NUMBER_WORK_MINS + endTimeOffset; + return getMinLunchDuration(totalDuration); + } + + + private long getMinLunchDuration(LocalTime manualEndTime) { + if (manualEndTime == null) { + return MIN_LUNCH_DURATION; + } + long totalDuration = getStartTime().until(manualEndTime, ChronoUnit.MINUTES); + return getMinLunchDuration(totalDuration); + } + + + private long getMinLunchDuration(long precalculatedTotalDuration) { + long effectiveLunchDuration = precalculatedTotalDuration - MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH; + if (effectiveLunchDuration < 0) { + effectiveLunchDuration = 0; + } + return Math.min(effectiveLunchDuration, MIN_LUNCH_DURATION); + } + + + private long getRealLunchDuration(Integer manualLunchDuration, long minLunchDuration) { + return manualLunchDuration != null && manualLunchDuration >= minLunchDuration ? manualLunchDuration : minLunchDuration; + } + + + private void realInitZapfenstreich(long effectiveLunchDuration, LocalTime effectiveEndTime) { + if (effectiveLunchDuration > 0) { + var totalWorkTime = LocalTime.MIDNIGHT.plusMinutes(getStartTime().until(effectiveEndTime, ChronoUnit.MINUTES) - effectiveLunchDuration); + print("Arbeitszeit: " + FormatTools.TIME_FORMATTER.format(totalWorkTime) + "; "); + } + setEndTime(effectiveEndTime); + } +} diff --git a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/tools/LoadingBarCliTools.java b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/tools/LoadingBarCliTools.java index cd45fbf..7abd5ea 100644 --- a/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/tools/LoadingBarCliTools.java +++ b/zeitlaeufer/src/main/java/de/szimnau/zeitlaeufer/tools/LoadingBarCliTools.java @@ -1,6 +1,6 @@ package de.szimnau.zeitlaeufer.tools; -import de.szimnau.zeitlaeufer.LoadingBar; +import de.szimnau.zeitlaeufer.WorkdayLoadingBar; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; @@ -54,11 +54,11 @@ public class LoadingBarCliTools { private LoadingBarCliTools() {} - public static void askParametersAndRun(Function constructor) throws IOException { + public static void askParametersAndRun(Function constructor) throws IOException { var br = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8)); print("Ankunftszeit: "); var startTime = LocalTime.parse(br.readLine(), FormatTools.TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES); - LoadingBar lb = constructor.apply(startTime); + WorkdayLoadingBar lb = constructor.apply(startTime); boolean debug = false; boolean passedMinutesZero = false; if (lb.hasMittagspauseArrived(debug && passedMinutesZero)) { @@ -70,7 +70,7 @@ public class LoadingBarCliTools { } - private static void handleMittagspause(BufferedReader br, LoadingBar lb) throws IOException { + private static void handleMittagspause(BufferedReader br, WorkdayLoadingBar lb) throws IOException { print("Mittagspause verschieben um (optional): "); String mittagspauseOffsetRaw = br.readLine(); if (mittagspauseOffsetRaw != null && !mittagspauseOffsetRaw.isBlank()) { @@ -89,15 +89,15 @@ public class LoadingBarCliTools { } - private static void handleZapfenstreich(BufferedReader br, LoadingBar lb) throws IOException { + private static void handleZapfenstreich(BufferedReader br, WorkdayLoadingBar lb) throws IOException { print("Mittagspause hat gedauert (optional): "); String mittagspauseDurationRaw = br.readLine(); Integer mittagspauseDuration = null; if (mittagspauseDurationRaw != null && !mittagspauseDurationRaw.isBlank()) { mittagspauseDuration = Integer.valueOf(mittagspauseDurationRaw); } - LocalTime vorlaeufigeEndzeit = lb.getStartTime().plusMinutes(LoadingBar.MAX_NUMBER_WORK_MINS) - .plusMinutes(mittagspauseDuration != null ? mittagspauseDuration : LoadingBar.MIN_LUNCH_DURATION); + LocalTime vorlaeufigeEndzeit = lb.getStartTime().plusMinutes(WorkdayLoadingBar.MAX_NUMBER_WORK_MINS) + .plusMinutes(mittagspauseDuration != null ? mittagspauseDuration : WorkdayLoadingBar.MIN_LUNCH_DURATION); println("Endzeit: " + FormatTools.TIME_FORMATTER.format(vorlaeufigeEndzeit)); print("Feierabend verschieben um (optional): "); String zapfenstreichOffsetRaw = br.readLine(); @@ -117,7 +117,7 @@ public class LoadingBarCliTools { } - public static void parseParametersAndRun(String[] args, Function constructor) { + public static void parseParametersAndRun(String[] args, Function constructor) { String nextArg = args[0]; if ("--help".equals(nextArg)) { printHelp(); @@ -129,7 +129,7 @@ public class LoadingBarCliTools { nextArg = args[1]; var section = DaySection.byParam(nextArg); verifyDaySection(section, nextArg); - LoadingBar lb = constructor.apply(startTime); + WorkdayLoadingBar lb = constructor.apply(startTime); if (section == DaySection.MITTAG) { initLoadingBarMittagspause(args, lb); } else { @@ -141,7 +141,7 @@ public class LoadingBarCliTools { } - private static void initLoadingBarMittagspause(String[] args, LoadingBar lb) { + private static void initLoadingBarMittagspause(String[] args, WorkdayLoadingBar lb) { if (args.length == 2) { lb.initMittagspause(); return; @@ -157,7 +157,7 @@ public class LoadingBarCliTools { } - private static void initLoadingBarZapfenstreich(String[] args, LoadingBar lb) { + private static void initLoadingBarZapfenstreich(String[] args, WorkdayLoadingBar lb) { if (args.length == 2) { lb.initZapfenstreich(); return; @@ -250,16 +250,16 @@ public class LoadingBarCliTools { private static void printHelp() { println("Mögliche Argumente für LoadingBar:\n" - + "Normalfall Vormittag (Mittagspause <= " + LoadingBar.LATEST_LUNCH_TIME + ")\n" + + "Normalfall Vormittag (Mittagspause <= " + WorkdayLoadingBar.LATEST_LUNCH_TIME + ")\n" + FormatTools.TIME_FORMAT + " " + DaySection.MITTAG.getParam() + "\n" - + "Vormittag mit expliziter Mittagspause (<= " + LoadingBar.LATEST_LUNCH_TIME + ")\n" + + "Vormittag mit expliziter Mittagspause (<= " + WorkdayLoadingBar.LATEST_LUNCH_TIME + ")\n" + FormatTools.TIME_FORMAT + " " + DaySection.MITTAG.getParam() + " " + FormatTools.TIME_FORMAT + "\n" + "Vormittag mit abweichender Minutenanzahl Arbeitszeit\n" + FormatTools.TIME_FORMAT + " " + DaySection.MITTAG.getParam() + " -+mm\n" - + "Normalfall Nachmittag (Mittagspause " + LoadingBar.MIN_LUNCH_DURATION + " min)\n" + + "Normalfall Nachmittag (Mittagspause " + WorkdayLoadingBar.MIN_LUNCH_DURATION + " min)\n" + FormatTools.TIME_FORMAT + " " + DaySection.ZAPFENSTREICH.getParam() + "\n" - + "Nachmittag mit expliziter Länge Mittagspause (Mittagspause unter " + LoadingBar.MIN_LUNCH_DURATION + " min wird auf " - + LoadingBar.MIN_LUNCH_DURATION + " min korrigiert)\n" + + "Nachmittag mit expliziter Länge Mittagspause (Mittagspause unter " + WorkdayLoadingBar.MIN_LUNCH_DURATION + " min wird auf " + + WorkdayLoadingBar.MIN_LUNCH_DURATION + " min korrigiert)\n" + FormatTools.TIME_FORMAT + " " + DaySection.ZAPFENSTREICH.getParam() + " mm\n" + "Nachmittag mit explizitem Feierabend (Mittagspause je nach Minimum (s.u.))\n" + FormatTools.TIME_FORMAT + " " + DaySection.ZAPFENSTREICH.getParam() + " " + FormatTools.TIME_FORMAT + "\n" @@ -270,12 +270,12 @@ public class LoadingBarCliTools { + "Nachmittag mit explizitem Feierabend u. abweichender Minutenanzahl Arbeitszeit\n" + FormatTools.TIME_FORMAT + " " + DaySection.ZAPFENSTREICH.getParam() + " " + FormatTools.TIME_FORMAT + " -+mm\n\n" + "Mittagspause minimum in Minuten:\n" - + " - bis " + LoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH + " min (" - + LoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH / CommonTools.MINS_PER_HOUR + " std): 0\n" - + " - bis " + LoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH + " min + " - + LoadingBar.MIN_LUNCH_DURATION + " min: Arbeitszeit - " + LoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH + " min\n" - + " - ab " + LoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH + " min + " + LoadingBar.MIN_LUNCH_DURATION + " min: " - + LoadingBar.MIN_LUNCH_DURATION + " min\n" + + " - bis " + WorkdayLoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH + " min (" + + WorkdayLoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH / CommonTools.MINS_PER_HOUR + " std): 0\n" + + " - bis " + WorkdayLoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH + " min + " + + WorkdayLoadingBar.MIN_LUNCH_DURATION + " min: Arbeitszeit - " + WorkdayLoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH + " min\n" + + " - ab " + WorkdayLoadingBar.MAX_NUMBER_WORK_MINS_WITHOUT_LUNCH + " min + " + WorkdayLoadingBar.MIN_LUNCH_DURATION + " min: " + + WorkdayLoadingBar.MIN_LUNCH_DURATION + " min\n" ); } }