< prev index next >
make/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java
Print this page
*** 716,726 ****
stdOffset),
stdOffset,
stdOffsetNew));
stdOffset = stdOffsetNew;
}
-
LocalDateTime zoneEnd;
if (zone.year == Year.MAX_VALUE) {
zoneEnd = LocalDateTime.MAX;
} else {
zoneEnd = zone.toDateTime();
--- 716,725 ----
*** 732,741 ****
--- 731,741 ----
// calculate effective savings at the start of the window
List<TransRule> trules = null;
List<TransRule> lastRules = null;
int effectiveSavings = zone.fixedSavingsSecs;
+
if (zone.savingsRule != null) {
List<RuleLine> tzdbRules = rules.get(zone.savingsRule);
if (tzdbRules == null) {
throw new IllegalArgumentException("<Rule> not found: " +
zone.savingsRule);
*** 756,767 ****
int endYear = rule.endYear;
if (zoneEnd.equals(LocalDateTime.MAX)) {
if (endYear == Year.MAX_VALUE) {
endYear = startYear;
lastRules.add(new TransRule(endYear, rule));
- lastRulesStartYear = Math.max(startYear, lastRulesStartYear);
}
} else {
if (endYear == Year.MAX_VALUE) {
//endYear = zoneEnd.getYear();
endYear = zone.year;
}
--- 756,768 ----
int endYear = rule.endYear;
if (zoneEnd.equals(LocalDateTime.MAX)) {
if (endYear == Year.MAX_VALUE) {
endYear = startYear;
lastRules.add(new TransRule(endYear, rule));
}
+ lastRulesStartYear = Math.max(startYear, lastRulesStartYear);
+
} else {
if (endYear == Year.MAX_VALUE) {
//endYear = zoneEnd.getYear();
endYear = zone.year;
}
< prev index next >