jdk Sdiff test/sun/util/calendar/zi (original) (raw)


89 if (rec1.getMonthNum() > rec2.getMonthNum()) { 90 rules.set(0, rec2); 91 rules.set(1, rec1); 92 } else if (rec1.getMonthNum() == rec2.getMonthNum()) { 93 // TODO: it's not accurate to ignore time types (STD, WALL, UTC) 94 long t1 = Time.getLocalTime(year, rec1.getMonth(), 95 rec1.getDay(), rec1.getTime().getTime()); 96 long t2 = Time.getLocalTime(year, rec2.getMonth(), 97 rec2.getDay(), rec2.getTime().getTime()); 98 if (t1 > t2) { 99 rules.set(0, rec2); 100 rules.set(1, rec1); 101 } 102 } 103 return rules; 104 } 105 106 final int y = year; 107 RuleRec[] recs = new RuleRec[rules.size()]; 108 rules.toArray(recs);

109 Arrays.sort(recs, new Comparator() { 110 public int compare(RuleRec r1, RuleRec r2) { 111 int n = r1.getMonthNum() - r2.getMonthNum(); 112 if (n != 0) { 113 return n; 114 } 115 // TODO: it's not accurate to ignore time types (STD, WALL, UTC) 116 long t1 = Time.getLocalTime(y, r1.getMonth(), 117 r1.getDay(), r1.getTime().getTime()); 118 long t2 = Time.getLocalTime(y, r2.getMonth(), 119 r2.getDay(), r2.getTime().getTime()); 120 return (int)(t1 - t2); 121 } 122 public boolean equals(Object o) { 123 return this == o; 124 } 125 }); 126 rules.clear(); 127 for (int i = 0; i < n; i++) { 128 rules.add(recs[i]); 129 } 130 return rules; 131 } 132 133 /** 134 * Gets rule records that have either "max" or cover the endYear 135 * value in its DST schedule. 136 * 137 * @return rules that contain last DST schedule. An empty 138 * ArrayList is returned if no last rules are found. 139 */ 140 List getLastRules() {



89 if (rec1.getMonthNum() > rec2.getMonthNum()) { 90 rules.set(0, rec2); 91 rules.set(1, rec1); 92 } else if (rec1.getMonthNum() == rec2.getMonthNum()) { 93 // TODO: it's not accurate to ignore time types (STD, WALL, UTC) 94 long t1 = Time.getLocalTime(year, rec1.getMonth(), 95 rec1.getDay(), rec1.getTime().getTime()); 96 long t2 = Time.getLocalTime(year, rec2.getMonth(), 97 rec2.getDay(), rec2.getTime().getTime()); 98 if (t1 > t2) { 99 rules.set(0, rec2); 100 rules.set(1, rec1); 101 } 102 } 103 return rules; 104 } 105 106 final int y = year; 107 RuleRec[] recs = new RuleRec[rules.size()]; 108 rules.toArray(recs); 109 110 Arrays.sort(recs, new Comparator() { 111 public int compare(RuleRec r1, RuleRec r2) { 112 int n = r1.getMonthNum() - r2.getMonthNum(); 113 if (n != 0) { 114 return n; 115 } 116 // TODO: it's not accurate to ignore time types (STD, WALL, UTC) 117 long t1 = Time.getLocalTime(y, r1.getMonth(), 118 r1.getDay(), r1.getTime().getTime()); 119 long t2 = Time.getLocalTime(y, r2.getMonth(), 120 r2.getDay(), r2.getTime().getTime()); 121 return Long.compare(t1, t2); 122 } 123 public boolean equals(Object o) { 124 return this == o; 125 } 126 }); 127 rules.clear(); 128 for (int i = 0; i < n; i++) { 129 rules.add(recs[i]); 130 } 131 return rules; 132 } 133 134 /** 135 * Gets rule records that have either "max" or cover the endYear 136 * value in its DST schedule. 137 * 138 * @return rules that contain last DST schedule. An empty 139 * ArrayList is returned if no last rules are found. 140 */ 141 List getLastRules() {