code: static InternationalFixedDate create(int prolepticYear, int month, int dayOfMonth) {
          YEAR_RANGE.checkValidValue(prolepticYear, ChronoField.YEAR_OF_ERA);
          MONTH_OF_YEAR_RANGE.checkValidValue(month, ChronoField.MONTH_OF_YEAR);
          DAY_OF_MONTH_RANGE.checkValidValue(dayOfMonth, ChronoField.DAY_OF_MONTH);
  
          if (dayOfMonth == DAYS_IN_LONG_MONTH && month != 6 && month != MONTHS_IN_YEAR) {
              throw new DateTimeException("Invalid date: " + prolepticYear + '/' + month + '/' + dayOfMonth);
          }
          if (month == 6 && dayOfMonth == DAYS_IN_LONG_MONTH && !INSTANCE.isLeapYear(prolepticYear)) {
              throw new DateTimeException("Invalid Leap Day as '" + prolepticYear + "' is not a leap year");
          }
          return new InternationalFixedDate(prolepticYear, month, dayOfMonth);
      }
docs: Factory method, validates the given triplet year, month and dayOfMonth.
  
  @param prolepticYear  the International fixed proleptic-year
  @param month  the International fixed month, from 1 to 13
  @param dayOfMonth  the International fixed day-of-month, from 1 to 28 (29 for Leap Day or Year Day)
  @return the International fixed date
  @throws DateTimeException if the date is invalid