Выборка на следующий действительный день

Я пишу одно приложение Java, где мне нужно сделать следующее.

Я должен избегать двух дней в неделю (настраиваемых извне), например, TUESDAY и FRIDAY, для обработки бизнес-логики. Я хочу узнать следующий доступный день. Например: если сегодня вторник, я должен получить СРЕДУ в качестве следующего доступного или, если сегодня четверг, то следующим доступным должен быть понедельник.

Может ли кто-нибудь помочь мне решить эту проблему? Это звучит просто, но это действительно сложно.

Вот что я сделал до сих пор

<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>

Пожалуйста, игнорируйте приведенную выше логику, если она выглядит неуклюжей.

Ответы на вопрос(1)

Ваш ответ на вопрос