code: static DiscordianDate create(int prolepticYear, int month, int dayOfMonth) {
          DiscordianChronology.YEAR_RANGE.checkValidValue(prolepticYear, YEAR);
          DiscordianChronology.MONTH_OF_YEAR_RANGE.checkValidValue(month, MONTH_OF_YEAR);
          DiscordianChronology.DAY_OF_MONTH_RANGE.checkValidValue(dayOfMonth, DAY_OF_MONTH);
  
          if (month == 0 || dayOfMonth == 0) {
              if (month != 0 || dayOfMonth != 0) {
                  throw new DateTimeException("Invalid date '" + month + " " + dayOfMonth + "' as St. Tib's Day is the only special day inserted in a non-existent month.");
              } else if (!DiscordianChronology.INSTANCE.isLeapYear(prolepticYear)) {
                  throw new DateTimeException("Invalid date 'St. Tibs Day' as '" + prolepticYear + "' is not a leap year");
              }
          }
  
          return new DiscordianDate(prolepticYear, month, dayOfMonth);
      }
docs: Creates a {@code DiscordianDate} validating the input.
  
  @param prolepticYear  the Discordian proleptic-year
  @param month  the Discordian month-of-year, from 1 to 5
  @param dayOfMonth  the Discordian day-of-month, from 1 to 73
  @return the date in Discordian calendar system, not null
  @throws DateTimeException if the value of any field is out of range,
  or if the day-of-year is invalid for the month-year