jdk Sdiff src/share/classes/sun/util/calendar (original) (raw)


568 dom = endRule.dom; 569 dow = endRule.dow; 570 if (dow == -1) { 571 params[6] = dom; 572 params[7] = 0; 573 } else { 574 // hacking: see comment above 575 if (dom < 0 || dom >= 24) { 576 params[6] = -1; 577 params[7] = toCalendarDOW[dow]; 578 } else { 579 params[6] = dom; 580 params[7] = -toCalendarDOW[dow]; 581 } 582 } 583 params[8] = endRule.secondOfDay * 1000; 584 params[9] = toSTZTime[endRule.timeDefinition]; 585 dstSavings = (startRule.offsetAfter - startRule.offsetBefore) * 1000; 586 587 // Note: known mismatching -> Asia/Amman

588 // ZoneInfo : startDayOfWeek=5 <= Thursday 589 // startTime=86400000 <= 24 hours 590 // This: startDayOfWeek=6 591 // startTime=0 592 // Below is the workaround, it probably slows down everyone a little 593 if (params[2] == 6 && params[3] == 0 && zoneId.equals("Asia/Amman")) {

594 params[2] = 5; 595 params[3] = 86400000; 596 } 597 } else if (nTrans > 0) { // only do this if there is something in table already 598 if (lastyear < LASTYEAR) { 599 // ZoneInfo has an ending entry for 2037 600 //long trans = OffsetDateTime.of(LASTYEAR, 1, 1, 0, 0, 0, 0, 601 // ZoneOffset.ofTotalSeconds(rawOffset/1000)) 602 // .toEpochSecond(); 603 long trans = LDT2037 - rawOffset/1000; 604 605 int offsetIndex = indexOf(offsets, 0, nOffsets, rawOffset/1000); 606 if (offsetIndex == nOffsets) 607 nOffsets++; 608 transitions[nTrans++] = (trans * 1000) << TRANSITION_NSHIFT | 609 (offsetIndex & OFFSET_MASK); 610 611 } else if (savingsInstantTransitions.length > 2) { 612 // Workaround: create the params based on the last pair for 613 // zones like Israel and Iran which have trans defined



568 dom = endRule.dom; 569 dow = endRule.dow; 570 if (dow == -1) { 571 params[6] = dom; 572 params[7] = 0; 573 } else { 574 // hacking: see comment above 575 if (dom < 0 || dom >= 24) { 576 params[6] = -1; 577 params[7] = toCalendarDOW[dow]; 578 } else { 579 params[6] = dom; 580 params[7] = -toCalendarDOW[dow]; 581 } 582 } 583 params[8] = endRule.secondOfDay * 1000; 584 params[9] = toSTZTime[endRule.timeDefinition]; 585 dstSavings = (startRule.offsetAfter - startRule.offsetBefore) * 1000; 586 587 // Note: known mismatching -> Asia/Amman 588 // Asia/Gaza 589 // Asia/Hebron 590 // ZoneInfo : startDayOfWeek=5 <= Thursday 591 // startTime=86400000 <= 24 hours 592 // This: startDayOfWeek=6 593 // startTime=0 594 // Below is the workaround, it probably slows down everyone a little 595 if (params[2] == 6 && params[3] == 0 && 596 (zoneId.equals("Asia/Amman") || 597 zoneId.equals("Asia/Gaza") || 598 zoneId.equals("Asia/Hebron"))) { 599 params[2] = 5; 600 params[3] = 86400000; 601 } 602 } else if (nTrans > 0) { // only do this if there is something in table already 603 if (lastyear < LASTYEAR) { 604 // ZoneInfo has an ending entry for 2037 605 //long trans = OffsetDateTime.of(LASTYEAR, 1, 1, 0, 0, 0, 0, 606 // ZoneOffset.ofTotalSeconds(rawOffset/1000)) 607 // .toEpochSecond(); 608 long trans = LDT2037 - rawOffset/1000; 609 610 int offsetIndex = indexOf(offsets, 0, nOffsets, rawOffset/1000); 611 if (offsetIndex == nOffsets) 612 nOffsets++; 613 transitions[nTrans++] = (trans * 1000) << TRANSITION_NSHIFT | 614 (offsetIndex & OFFSET_MASK); 615 616 } else if (savingsInstantTransitions.length > 2) { 617 // Workaround: create the params based on the last pair for 618 // zones like Israel and Iran which have trans defined