class DateCache {

    public String formatFor(int cycle) {
        long millis = (long) cycle * cycleLength;
        int hash = Maths.hash(millis) & (SIZE - 1);
        DateValue dv = values[hash];
        if (dv == null || dv.millis != millis) {
            synchronized (format) {
                String text = format.format(new Date(millis));
                values[hash] = new DateValue(millis, text);
                return text;
            }
        }
        return dv.text;
    }

    public  DateCache(final String formatStr, int cycleLength);

}