/** * Sets the standard offset to use for newly added rules until the next * cutover is added. * @param standardOffset the standard offset in millis */ public DateTimeZoneBuilder setStandardOffset(int standardOffset) { getLastRuleSet().setStandardOffset(standardOffset); return this; }
/** * Set a fixed savings rule at the cutover. */ public DateTimeZoneBuilder setFixedSavings(String nameKey, int saveMillis) { getLastRuleSet().setFixedSavings(nameKey, saveMillis); return this; }
public void writeTo(DataOutput out) throws IOException { writeMillis(out, iStandardOffset); iStartRecurrence.writeTo(out); iEndRecurrence.writeTo(out); }
static DSTZone readFrom(DataInput in, String id) throws IOException { return new DSTZone(id, (int)readMillis(in), Recurrence.readFrom(in), Recurrence.readFrom(in)); }
/** * Adds a recurring savings rule to the builder. */ public void addRecurring(DateTimeZoneBuilder builder, int negativeSave, String nameFormat) { int saveMillis = iSaveMillis + -negativeSave; String nameKey = formatName(nameFormat, saveMillis, iLetterS); iDateTimeOfYear.addRecurring(builder, nameKey, saveMillis, iFromYear, iToYear); }
public String getNameKey(long instant) { return getInfo(instant).getNameKey(instant); }
public String getNameKey(long instant) { return findMatchingRecurrence(instant).getNameKey(); }
public int getOffset(long instant) { return iStandardOffset + findMatchingRecurrence(instant).getSaveMillis(); }
Transition(long millis, Rule rule, int standardOffset) { iMillis = millis; iNameKey = rule.getNameKey(); iWallOffset = standardOffset + rule.getSaveMillis(); iStandardOffset = standardOffset; }
/** * Adds a cutover to the builder. */ public void addCutover(DateTimeZoneBuilder builder, int year) { builder.addCutover(year, iZoneChar, iMonthOfYear, iDayOfMonth, iDayOfWeek, iAdvanceDayOfWeek, iMillisOfDay); }
/** * @param standardOffset standard offset just before next recurrence */ public long next(long instant, int standardOffset, int saveMillis) { return iOfYear.next(instant, standardOffset, saveMillis); }
/** * @param standardOffset standard offset just before previous recurrence */ public long previous(long instant, int standardOffset, int saveMillis) { return iOfYear.previous(instant, standardOffset, saveMillis); }
/** * Returns a new CachedDateTimeZone unless given zone is already cached. */ public static CachedDateTimeZone forZone(DateTimeZone zone) { if (zone instanceof CachedDateTimeZone) { return (CachedDateTimeZone)zone; } return new CachedDateTimeZone(zone); }
private Info getInfo(long millis) { int period = (int)(millis >> 32); Info[] cache = iInfoCache; int index = period & cInfoCacheMask; Info info = cache[index]; if (info == null || (int)((info.iPeriodStart >> 32)) != period) { info = createInfo(millis); cache[index] = info; } return info; }
static DSTZone readFrom(DataInput in, String id) throws IOException { return new DSTZone(id, (int)readMillis(in), Recurrence.readFrom(in), Recurrence.readFrom(in)); }
/** * Sets the standard offset to use for newly added rules until the next * cutover is added. * @param standardOffset the standard offset in millis */ public DateTimeZoneBuilder setStandardOffset(int standardOffset) { getLastRuleSet().setStandardOffset(standardOffset); return this; }
/** * Set a fixed savings rule at the cutover. */ public DateTimeZoneBuilder setFixedSavings(String nameKey, int saveMillis) { getLastRuleSet().setFixedSavings(nameKey, saveMillis); return this; }
public void writeTo(DataOutput out) throws IOException { writeMillis(out, iStandardOffset); iStartRecurrence.writeTo(out); iEndRecurrence.writeTo(out); }
/** * Adds a recurring savings rule to the builder. */ public void addRecurring(DateTimeZoneBuilder builder, int negativeSave, String nameFormat) { int saveMillis = iSaveMillis + -negativeSave; String nameKey = formatName(nameFormat, saveMillis, iLetterS); iDateTimeOfYear.addRecurring(builder, nameKey, saveMillis, iFromYear, iToYear); }