code: public static LocalDateRange ofClosed(LocalDate startInclusive, LocalDate endInclusive) {
          Objects.requireNonNull(startInclusive, "startInclusive");
          Objects.requireNonNull(endInclusive, "endInclusive");
          if (endInclusive.isBefore(startInclusive)) {
              throw new DateTimeException("Start date must be on or before end date");
          }
          LocalDate end = (endInclusive.equals(LocalDate.MAX) ? LocalDate.MAX : endInclusive.plusDays(1));
          return new LocalDateRange(startInclusive, end);
      }
docs: Obtains a closed range of dates, including the start and end.
  <p>
  The range includes the start date and the end date.
  The end date must be equal to or after the start date.
  <p>
  The constants {@code LocalDate.MIN} and {@code LocalDate.MAX} can be used
  to indicate an unbounded far-past or far-future. In addition, an end date of
  {@code LocalDate.MAX.minusDays(1)} will also create an unbounded far-future range.
  <p>
  The start inclusive date must not be {@code LocalDate.MAX} or {@code LocalDate.MAX.minusDays(1)}.
  The end inclusive date must not be {@code LocalDate.MIN}.
  
  @param startInclusive  the inclusive start date, not null
  @param endInclusive  the inclusive end date, not null
  @return the closed range
  @throws DateTimeException if the end is before the start,
  or the start date is {@code LocalDate.MAX} or {@code LocalDate.MAX.minusDays(1)},
  or the end date is {@code LocalDate.MIN}