code: static HijrahDate of(HijrahEra era, int yearOfEra, int monthOfYear, int dayOfMonth) {
          Jdk8Methods.requireNonNull(era, "era");
          checkValidYearOfEra(yearOfEra);
          checkValidMonth(monthOfYear);
          checkValidDayOfMonth(dayOfMonth);
          long gregorianDays = getGregorianEpochDay(era.prolepticYear(yearOfEra), monthOfYear, dayOfMonth);
          return new HijrahDate(gregorianDays);
      }
docs: Obtains an instance of {@code HijrahDate} from the era, year-of-era
  month-of-year and day-of-month.
  
  @param era  the era to represent, not null
  @param yearOfEra  the year-of-era to represent, from 1 to 9999
  @param monthOfYear  the month-of-year to represent, from 1 to 12
  @param dayOfMonth  the day-of-month to represent, from 1 to 31
  @return the Hijrah date, never null
  @throws IllegalCalendarFieldValueException if the value of any field is out of range
  @throws InvalidCalendarFieldException if the day-of-month is invalid for the month-year