class HolidayManager {

    public Instant getInstantAfterWorkingMillis (Instant start, long workingMillis) {
        Calendar calendar = GregorianCalendar.from(ZonedDateTime.ofInstant(start, holidayCalendar.getTimeZoneId()));
        long millisLeftInDay;
        boolean looper = true;
        do {
            millisLeftInDay = getMillisLeftInDay(calendar);
            if (millisLeftInDay < workingMillis) {
                incrementCalendarToMidnight(calendar);
                workingMillis -= millisLeftInDay;
            } else {
                looper = false;
            }
        } while (looper);
        return calendar.toInstant().plusMillis(workingMillis);
    }

}