docs: long getDateMidnightMillis(int year, int monthOfYear, int dayOfMonth) {
          FieldUtils.verifyValueBounds(DateTimeFieldType.year(), year, getMinYear() - 1, getMaxYear() + 1);
          FieldUtils.verifyValueBounds(DateTimeFieldType.monthOfYear(), monthOfYear, 1, getMaxMonth(year));
          FieldUtils.verifyValueBounds(DateTimeFieldType.dayOfMonth(), dayOfMonth, 1, getDaysInYearMonth(year, monthOfYear));
          long instant = getYearMonthDayMillis(year, monthOfYear, dayOfMonth);
          // check for limit caused by min/max year +1/-1
          if (instant < 0 && year == getMaxYear() + 1) {
              return Long.MAX_VALUE;
          } else if (instant > 0 && year == getMinYear() - 1) {
              return Long.MIN_VALUE;
          }
          return instant;
      }