code: @Override
      public LocalDate adjustDate(LocalDate startDate, int increment, NonWorkingDayChecker<LocalDate> checker) {
          LocalDate date = startDate;
          final int month = date.getMonthValue();
          int stepToUse = increment;
          while (checker.isNonWorkingDay(date)) {
              date = date.plusDays(stepToUse);
              if (date.getMonthValue() != month) {
                  // flick to backward
                  stepToUse *= -1;
                  date = date.plusDays(stepToUse);
              }
          }
          return date;
      }
docs: -----------------------------------------------------------------------