public long set(long millis, int value) {
        int[] wwd = iChronology.isoFromMillis(millis);
        millis = iChronology.getTimeOnlyMillis(millis)
            + iChronology.millisFromISO(value, wwd[1], wwd[2]);
        if (wwd[1] == 53) {
            int[] wwd2 = iChronology.isoFromMillis(millis);
            if (wwd2[0] != value) {
                // Set year doesn't have 53 weeks, so back off a week.
                millis = iChronology.dayOfYear().add(millis, -7);
            }
        }
        return millis;
    }