helper methods for printing to stdout
This commit is contained in:
		@@ -75,7 +75,7 @@ public class LoadingBar {
 | 
			
		||||
 | 
			
		||||
   private static void askParametersAndRun() throws IOException {
 | 
			
		||||
      var br = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
 | 
			
		||||
      System.out.print("Ankunftszeit: ");
 | 
			
		||||
      print("Ankunftszeit: ");
 | 
			
		||||
      String startTimeRaw = br.readLine();
 | 
			
		||||
      var startTime = LocalTime.parse(startTimeRaw, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES);
 | 
			
		||||
      handleMittagspause(br, startTime);
 | 
			
		||||
@@ -83,16 +83,25 @@ public class LoadingBar {
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   private static void println(Object o) {
 | 
			
		||||
      System.out.println(o);
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   private static void print(Object o) {
 | 
			
		||||
      System.out.print(o);
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   private static void handleMittagspause(BufferedReader br, LocalTime startTime) throws IOException {
 | 
			
		||||
      System.out.print("Mittagspause verschieben um (optional): ");
 | 
			
		||||
      print("Mittagspause verschieben um (optional): ");
 | 
			
		||||
      String mittagspauseOffsetRaw = br.readLine();
 | 
			
		||||
      if (mittagspauseOffsetRaw != null && !mittagspauseOffsetRaw.isBlank()) {
 | 
			
		||||
         var mittagspauseOffset = Integer.parseInt(mittagspauseOffsetRaw);
 | 
			
		||||
         showLoadingBarMittagspause(startTime, mittagspauseOffset);
 | 
			
		||||
         return;
 | 
			
		||||
      }
 | 
			
		||||
      System.out.print("Mittagspause um (optional): ");
 | 
			
		||||
      print("Mittagspause um (optional): ");
 | 
			
		||||
      String manualMittagspauseRaw = br.readLine();
 | 
			
		||||
      if (manualMittagspauseRaw != null && !manualMittagspauseRaw.isBlank()) {
 | 
			
		||||
         var manualMittagspause = LocalTime.parse(manualMittagspauseRaw, TIME_FORMATTER).truncatedTo(ChronoUnit.MINUTES);
 | 
			
		||||
@@ -104,13 +113,13 @@ public class LoadingBar {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   private static void handleZapfenstreich(BufferedReader br, LocalTime startTime) throws IOException {
 | 
			
		||||
      System.out.print("Mittagspause hat gedauert (optional): ");
 | 
			
		||||
      print("Mittagspause hat gedauert (optional): ");
 | 
			
		||||
      String mittagspauseDurationRaw = br.readLine();
 | 
			
		||||
      Integer mittagspauseDuration = null;
 | 
			
		||||
      if (mittagspauseDurationRaw != null && !mittagspauseDurationRaw.isBlank()) {
 | 
			
		||||
         mittagspauseDuration = Integer.valueOf(mittagspauseDurationRaw);
 | 
			
		||||
      }
 | 
			
		||||
      System.out.print("Feierabend verschieben um (optional): ");
 | 
			
		||||
      print("Feierabend verschieben um (optional): ");
 | 
			
		||||
      String zapfenstreichOffsetRaw = br.readLine();
 | 
			
		||||
      Integer zapfenstreichOffset = null;
 | 
			
		||||
      if (zapfenstreichOffsetRaw != null && !zapfenstreichOffsetRaw.isBlank()) {
 | 
			
		||||
@@ -118,7 +127,7 @@ public class LoadingBar {
 | 
			
		||||
         showLoadingBarZapfenstreich(startTime, mittagspauseDuration, zapfenstreichOffset);
 | 
			
		||||
         return;
 | 
			
		||||
      }
 | 
			
		||||
      System.out.print("Manuelle Uhrzeit Feierabend (optional): ");
 | 
			
		||||
      print("Manuelle Uhrzeit Feierabend (optional): ");
 | 
			
		||||
      String manualZapfenstreichRaw = br.readLine();
 | 
			
		||||
      LocalTime manualZapfenstreich = null;
 | 
			
		||||
      if (manualZapfenstreichRaw != null && !manualZapfenstreichRaw.isBlank()) {
 | 
			
		||||
@@ -195,7 +204,7 @@ public class LoadingBar {
 | 
			
		||||
      }
 | 
			
		||||
      nextArg = args[3];
 | 
			
		||||
      if (lunchDuration == null) {
 | 
			
		||||
         System.out.println("Letztes Argument darf nur auf Mittagspausendauer folgen.");
 | 
			
		||||
         println("Letztes Argument darf nur auf Mittagspausendauer folgen.");
 | 
			
		||||
         System.exit(1);
 | 
			
		||||
      }
 | 
			
		||||
      if (maxZapfenstreich == null && !OFFSET_PATTERN.matcher(nextArg).matches()) {
 | 
			
		||||
@@ -214,7 +223,7 @@ public class LoadingBar {
 | 
			
		||||
      if (args.length >= 2) {
 | 
			
		||||
         return;
 | 
			
		||||
      }
 | 
			
		||||
      System.out.println("Mindestens 2 Argumente müssen gegeben sein.");
 | 
			
		||||
      println("Mindestens 2 Argumente müssen gegeben sein.");
 | 
			
		||||
      printHelp();
 | 
			
		||||
      System.exit(1);
 | 
			
		||||
   }
 | 
			
		||||
@@ -241,7 +250,7 @@ public class LoadingBar {
 | 
			
		||||
      } // FSFIXME fine tune message -> HH:mm, mm, -+mm
 | 
			
		||||
      var firstInputPart = timeInput ? "Uhrzeitformat (" + TIME_FORMAT + ")" : "Minutenanzahl (" + LUNCH_DURATION_PATTERN + ")";
 | 
			
		||||
      var possibleTimeInputPart = !timeInput && timeInputPossible ? " oder Uhrzeitformat (" + TIME_FORMAT + ")" : "";
 | 
			
		||||
      System.out.println(errMsgPrefix + " \"" + param + "\" muss " + firstInputPart + possibleTimeInputPart + " entsprechen.");
 | 
			
		||||
      println(errMsgPrefix + " \"" + param + "\" muss " + firstInputPart + possibleTimeInputPart + " entsprechen.");
 | 
			
		||||
      System.exit(1);
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
@@ -253,13 +262,13 @@ public class LoadingBar {
 | 
			
		||||
      List<String> sectionDescs = Arrays.stream(DaySection.values()).map((DaySection ds) -> ds.getDescription() + " (" + ds.getParam() + ")")
 | 
			
		||||
          .collect(Collectors.toList());
 | 
			
		||||
      String sectionDescsJoined = String.join(" oder ", sectionDescs);
 | 
			
		||||
      System.out.println("Argument nach Startzeit \"" + param + "\" muss Angabe für " + sectionDescsJoined + " sein.");
 | 
			
		||||
      println("Argument nach Startzeit \"" + param + "\" muss Angabe für " + sectionDescsJoined + " sein.");
 | 
			
		||||
      System.exit(1);
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   private static void printHelp() {
 | 
			
		||||
      System.out.println("Mögliche Argumente für LoadingBar:\n"
 | 
			
		||||
      println("Mögliche Argumente für LoadingBar:\n"
 | 
			
		||||
          + "Normalfall Vormittag (Mittagspause <= " + LATEST_LUNCH_TIME + ")\n"
 | 
			
		||||
          + TIME_FORMAT + " " + DaySection.MITTAG.getParam() + "\n"
 | 
			
		||||
          + "Vormittag mit expliziter Mittagspause (<= " + LATEST_LUNCH_TIME + ")\n"
 | 
			
		||||
@@ -373,7 +382,7 @@ public class LoadingBar {
 | 
			
		||||
   private static void realShowLoadingBarZapfenstreich(LocalTime startTime, long manualLunchDuration, LocalTime endTime) {
 | 
			
		||||
      if (manualLunchDuration > 0) {
 | 
			
		||||
         var totalWorkTime = LocalTime.MIDNIGHT.plusMinutes(startTime.until(endTime, ChronoUnit.MINUTES) - manualLunchDuration);
 | 
			
		||||
         System.out.print("Arbeitszeit: " + TIME_FORMATTER.format(totalWorkTime) + "; ");
 | 
			
		||||
         print("Arbeitszeit: " + TIME_FORMATTER.format(totalWorkTime) + "; ");
 | 
			
		||||
      }
 | 
			
		||||
      showLoadingBar(startTime, endTime);
 | 
			
		||||
   }
 | 
			
		||||
@@ -386,11 +395,11 @@ public class LoadingBar {
 | 
			
		||||
         passedMinutes = totalMinutes;
 | 
			
		||||
      } else if (passedMinutes < 0) {
 | 
			
		||||
         var now = LocalTime.now().truncatedTo(ChronoUnit.SECONDS);
 | 
			
		||||
         System.out.println("!ACHTUNG! Startzeit \"" + startTime + ":00\" liegt in der Zukunft von jetzt an (" + now + ") gesehen.");
 | 
			
		||||
         println("!ACHTUNG! Startzeit \"" + startTime + ":00\" liegt in der Zukunft von jetzt an (" + now + ") gesehen.");
 | 
			
		||||
      }
 | 
			
		||||
      System.out.println(minutesToTimeString(totalMinutes) + " gesamt; Endzeit: " + TIME_FORMATTER.format(endTime));
 | 
			
		||||
      println(minutesToTimeString(totalMinutes) + " gesamt; Endzeit: " + TIME_FORMATTER.format(endTime));
 | 
			
		||||
      while (passedMinutes < totalMinutes) {
 | 
			
		||||
         System.out.print(fillLoadingBar(totalMinutes, passedMinutes, true));
 | 
			
		||||
         print(fillLoadingBar(totalMinutes, passedMinutes, true));
 | 
			
		||||
         try {
 | 
			
		||||
            var now = LocalTime.now();
 | 
			
		||||
            var oneMinuteLater = now.plusMinutes(1).truncatedTo(ChronoUnit.MINUTES);
 | 
			
		||||
@@ -402,7 +411,7 @@ public class LoadingBar {
 | 
			
		||||
         }
 | 
			
		||||
         passedMinutes++;
 | 
			
		||||
      }
 | 
			
		||||
      System.out.println(fillLoadingBar(totalMinutes, passedMinutes, false));
 | 
			
		||||
      println(fillLoadingBar(totalMinutes, passedMinutes, false));
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user