private static HijrahDate resolvePreviousValid(int yearOfEra, int month, int day) { int monthDays = getMonthDays(month - 1, yearOfEra); if (day > monthDays) { day = monthDays; } return HijrahDate.of(yearOfEra, month, day); }
/** * Return Gregorian epoch day from Hijrah year, month, and day. * * @param prolepticYear the year to represent, caller calculated * @param monthOfYear the month-of-year to represent, caller calculated * @param dayOfMonth the day-of-month to represent, caller calculated * @return a julian day */ private static long getGregorianEpochDay(int prolepticYear, int monthOfYear, int dayOfMonth) { long day = yearToGregorianEpochDay(prolepticYear); day += getMonthDays(monthOfYear - 1, prolepticYear); day += dayOfMonth; return day; }