Compare commits
3 Commits
67c341a091
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
| cea8d25eea | |||
| 12c8898252 | |||
| 9e65158901 |
@@ -20,12 +20,12 @@ public interface WorkdayLoadingBar {
|
|||||||
void showLoadingBar(boolean debug, boolean passedMinutesZero);
|
void showLoadingBar(boolean debug, boolean passedMinutesZero);
|
||||||
|
|
||||||
|
|
||||||
default boolean canHaveHadNoMittagspauseYet() {
|
default boolean couldHaveHadNoMittagspauseYet() {
|
||||||
return canHaveHadNoMittagspauseYet(false);
|
return couldHaveHadNoMittagspauseYet(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
default boolean canHaveHadNoMittagspauseYet(boolean debugWithPassedMinutesZero) {
|
default boolean couldHaveHadNoMittagspauseYet(boolean debugWithPassedMinutesZero) {
|
||||||
return getPassedMinutes(debugWithPassedMinutesZero) < DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH;
|
return getPassedMinutes(debugWithPassedMinutesZero) < DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,6 +33,12 @@ public interface WorkdayLoadingBar {
|
|||||||
long getPassedMinutes(boolean passedMinutesZero);
|
long getPassedMinutes(boolean passedMinutesZero);
|
||||||
|
|
||||||
|
|
||||||
|
default LocalTime estimateMittagspause() {
|
||||||
|
LocalTime defaultEndTime = getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH);
|
||||||
|
return calculateRealMittagspause(defaultEndTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
default void initMittagspause() {
|
default void initMittagspause() {
|
||||||
LocalTime defaultEndTime = getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH);
|
LocalTime defaultEndTime = getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH);
|
||||||
realInitMittagspause(defaultEndTime);
|
realInitMittagspause(defaultEndTime);
|
||||||
@@ -43,7 +49,7 @@ public interface WorkdayLoadingBar {
|
|||||||
|
|
||||||
|
|
||||||
default void initMittagspause(int endTimeOffset) {
|
default void initMittagspause(int endTimeOffset) {
|
||||||
LocalTime offsetEndTime = getStartTime().plusMinutes(DEFAULT_NUMBER_WORK_MINS_BEFORE_LUNCH + endTimeOffset);
|
LocalTime offsetEndTime = estimateMittagspause().plusMinutes(endTimeOffset);
|
||||||
realInitMittagspause(offsetEndTime);
|
realInitMittagspause(offsetEndTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,13 +61,24 @@ public interface WorkdayLoadingBar {
|
|||||||
|
|
||||||
|
|
||||||
private void realInitMittagspause(LocalTime theoreticalEndTime) {
|
private void realInitMittagspause(LocalTime theoreticalEndTime) {
|
||||||
setEndTime(theoreticalEndTime.isAfter(LATEST_LUNCH_TIME) ? LATEST_LUNCH_TIME : theoreticalEndTime);
|
setEndTime(calculateRealMittagspause(theoreticalEndTime));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private LocalTime calculateRealMittagspause(LocalTime theoreticalMittagspause) {
|
||||||
|
return theoreticalMittagspause.isAfter(LATEST_LUNCH_TIME) ? LATEST_LUNCH_TIME : theoreticalMittagspause;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void setEndTime(LocalTime endTime);
|
void setEndTime(LocalTime endTime);
|
||||||
|
|
||||||
|
|
||||||
|
default LocalTime estimateZapfenstreich(Integer mittagspauseDuration) {
|
||||||
|
int estMittagspauseDuration = mittagspauseDuration != null ? mittagspauseDuration : MIN_LUNCH_DURATION;
|
||||||
|
return getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + estMittagspauseDuration);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
default void initZapfenstreich() {
|
default void initZapfenstreich() {
|
||||||
LocalTime trueEndTime = getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + MIN_LUNCH_DURATION);
|
LocalTime trueEndTime = getStartTime().plusMinutes(MAX_NUMBER_WORK_MINS + MIN_LUNCH_DURATION);
|
||||||
realInitZapfenstreich(MIN_LUNCH_DURATION, trueEndTime);
|
realInitZapfenstreich(MIN_LUNCH_DURATION, trueEndTime);
|
||||||
|
|||||||
@@ -61,16 +61,18 @@ public class LoadingBarCliTools {
|
|||||||
WorkdayLoadingBar lb = constructor.apply(startTime);
|
WorkdayLoadingBar lb = constructor.apply(startTime);
|
||||||
boolean debug = false;
|
boolean debug = false;
|
||||||
boolean passedMinutesZero = false;
|
boolean passedMinutesZero = false;
|
||||||
if (lb.couldHaveHadNoMittagspauseYetYetYet(debug && passedMinutesZero)) {
|
if (lb.couldHaveHadNoMittagspauseYet(debug && passedMinutesZero)) {
|
||||||
handleMittagspause(br, lb);
|
handleMittagspause(br, lb);
|
||||||
lb.showLoadingBar(debug, passedMinutesZero);
|
lb.showLoadingBar(debug, passedMinutesZero);
|
||||||
}
|
}
|
||||||
handleZapfenstreich(br, lb, passedMinutesZero);
|
handleZapfenstreich(br, lb);
|
||||||
lb.showLoadingBar(debug, passedMinutesZero);
|
lb.showLoadingBar(debug, passedMinutesZero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void handleMittagspause(BufferedReader br, WorkdayLoadingBar lb) throws IOException {
|
private static void handleMittagspause(BufferedReader br, WorkdayLoadingBar lb) throws IOException {
|
||||||
|
LocalTime vorlaeufigeEndzeit = lb.estimateMittagspause();
|
||||||
|
println("Mittagspause: " + FormatTools.TIME_FORMATTER.format(vorlaeufigeEndzeit));
|
||||||
print("Mittagspause verschieben um (optional): ");
|
print("Mittagspause verschieben um (optional): ");
|
||||||
String mittagspauseOffsetRaw = br.readLine();
|
String mittagspauseOffsetRaw = br.readLine();
|
||||||
if (mittagspauseOffsetRaw != null && !mittagspauseOffsetRaw.isBlank()) {
|
if (mittagspauseOffsetRaw != null && !mittagspauseOffsetRaw.isBlank()) {
|
||||||
@@ -89,15 +91,14 @@ public class LoadingBarCliTools {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void handleZapfenstreich(BufferedReader br, WorkdayLoadingBar lb, boolean passedMinutesZero) throws IOException {
|
private static void handleZapfenstreich(BufferedReader br, WorkdayLoadingBar lb) throws IOException {
|
||||||
print("Mittagspause hat gedauert (optional): ");
|
print("Mittagspause hat gedauert (optional): ");
|
||||||
String mittagspauseDurationRaw = br.readLine();
|
String mittagspauseDurationRaw = br.readLine();
|
||||||
Integer mittagspauseDuration = null;
|
Integer mittagspauseDuration = null;
|
||||||
if (mittagspauseDurationRaw != null && !mittagspauseDurationRaw.isBlank()) {
|
if (mittagspauseDurationRaw != null && !mittagspauseDurationRaw.isBlank()) {
|
||||||
mittagspauseDuration = Integer.valueOf(mittagspauseDurationRaw);
|
mittagspauseDuration = Integer.valueOf(mittagspauseDurationRaw);
|
||||||
}
|
}
|
||||||
LocalTime vorlaeufigeEndzeit = lb.getStartTime().plusMinutes(lb.getPassedMinutes(passedMinutesZero))
|
LocalTime vorlaeufigeEndzeit = lb.estimateZapfenstreich(mittagspauseDuration);
|
||||||
.plusMinutes(mittagspauseDuration != null ? mittagspauseDuration : WorkdayLoadingBar.MIN_LUNCH_DURATION);
|
|
||||||
println("Endzeit: " + FormatTools.TIME_FORMATTER.format(vorlaeufigeEndzeit));
|
println("Endzeit: " + FormatTools.TIME_FORMATTER.format(vorlaeufigeEndzeit));
|
||||||
print("Feierabend verschieben um (optional): ");
|
print("Feierabend verschieben um (optional): ");
|
||||||
String zapfenstreichOffsetRaw = br.readLine();
|
String zapfenstreichOffsetRaw = br.readLine();
|
||||||
|
|||||||
Reference in New Issue
Block a user