public long set(long millis, int value) {
        int[] ymd = iChronology.gjFromMillis(millis);
        millis = iChronology.getTimeOnlyMillis(millis)
            + iChronology.millisFromGJ(value, ymd[1], ymd[2]);
        if (ymd[1] == 2 && ymd[2] == 29 && !iChronology.isLeapYear(value)) {
            millis = iChronology.dayOfYear().add(millis, -1);
        }
        return millis;
    }