code: public static boolean isDateAfterToday(String date) {
          if (isEmpty(date)) return defaultEmptyOK;
          int dateSlash1 = date.indexOf("/");
          int dateSlash2 = date.lastIndexOf("/");
  
          if (dateSlash1 <= 0) return false;
  
          java.util.Date passed = null;
          if (dateSlash1 == dateSlash2) {
              // consider the day to be optional; use the first day of the following month for comparison since this is an is after test
              String month = date.substring(0, dateSlash1);
              String day = "28";
              String year = date.substring(dateSlash1 + 1);
              if (!isDate(year, month, day)) return false;
  
              try {
                  int monthInt = Integer.parseInt(month);
                  int yearInt = Integer.parseInt(year);
                  Calendar calendar = Calendar.getInstance();
                  calendar.set(yearInt, monthInt - 1, 0, 0, 0, 0);
                  calendar.add(Calendar.MONTH, 1);
                  passed = new java.util.Date(calendar.getTime().getTime());
              } catch (Exception e) {
                  passed = null;
              }
          } else {
              String month = date.substring(0, dateSlash1);
              String day = date.substring(dateSlash1 + 1, dateSlash2);
              String year = date.substring(dateSlash2 + 1);
              if (!isDate(year, month, day)) return false;
              passed = UtilDateTime.toDate(month, day, year, "0", "0", "0");
          }
  
          java.util.Date now = UtilDateTime.nowDate();
          if (passed != null) {
              return passed.after(now);
          } else {
              return false;
          }
      }
docs: isDate returns true if string argument date forms a valid date and is after today.