Nächsten gültigen Tag abrufen

Ich schreibe eine Java-Anwendung, in der ich Folgendes tun muss.

Ich muss zwei Tage in der Woche (extern konfigurierbar) vermeiden, z. B. DIENSTAG und FREITAG, um eine Geschäftslogikverarbeitung durchzuführen. Ich möchte den nächsten verfügbaren Tag herausfinden. Zum Beispiel: Wenn heute DIENSTAG ist, sollte ich MITTWOCH als nächstes verfügbar sein, oder wenn heute DONNERSTAG ist, sollte der nächste verfügbare Tag MONTAG sein.

Könnte mich jemand bei der Lösung dieses Problems unterstützen? Das klingt einfach, ist aber sehr trickreich.

Hier ist, was ich bisher gemacht habe

<code>       List<String> exceptionDays = new ArrayList<String>();
  exceptionDays.add("SUNDAY");
  exceptionDays.add("MONDAY");
  exceptionDays.add("FRIDAY");

  Date today = new Date();

      Calendar calendar = Calendar.getInstance();
      calendar.setTime(today);

  int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

  if (dayOfWeek == Calendar.FRIDAY) {
      calendar.add(Calendar.DATE, 3);
  } else if (dayOfWeek == Calendar.SATURDAY) {
      calendar.add(Calendar.DATE, 2);
  } else {
      calendar.add(Calendar.DATE, 1);
  }
  String strDateFormat = "E";
  SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);

  strDateFormat = "EEEE";
  sdf = new SimpleDateFormat(strDateFormat);

  Date nextBusinessDay = calendar.getTime();
  System.out.println(sdf.format(nextBusinessDay).toUpperCase());
  if(exceptionDays.contains(sdf.format(nextBusinessDay).toUpperCase())){
      if(sdf.format(nextBusinessDay).toUpperCase().equals("FRIDAY")){
          calendar.add(Calendar.DATE, 3);
      }else if(sdf.format(nextBusinessDay).toUpperCase().equals("SATURDAY")){
          calendar.add(Calendar.DATE, 2);
      } else
          calendar.add(Calendar.DATE, 1);


   nextBusinessDay = calendar.getTime();
  }
  DateFormat df = new SimpleDateFormat("dd-MMM-yy");
    String format = df.format(nextBusinessDay.getTime());
  System.out.println("Today            : " + df.format(today));
  try {
    System.out.println("Next business day: " + df.parse(format));

      System.out.println("Next business day: " + df.format(nextBusinessDay));
</code>

Bitte ignorieren Sie die obige Logik, wenn es unbeholfen aussieht.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage