1 Clazz.declarePackage ("jssun.util.calendar");
\r
2 Clazz.load (["jssun.util.calendar.CalendarSystem"], "jssun.util.calendar.AbstractCalendar", ["java.lang.IllegalArgumentException", "jssun.util.calendar.CalendarUtils", "$.ZoneInfo"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 Clazz.instantialize (this, arguments);
\r
6 }, jssun.util.calendar, "AbstractCalendar", jssun.util.calendar.CalendarSystem);
\r
7 Clazz.makeConstructor (c$,
\r
9 Clazz.superConstructor (this, jssun.util.calendar.AbstractCalendar, []);
\r
11 Clazz.overrideMethod (c$, "getEra",
\r
12 function (eraName) {
\r
13 if (this.eras != null) {
\r
14 for (var i = 0; i < this.eras.length; i++) {
\r
15 if (this.eras[i].equals (eraName)) {
\r
16 return this.eras[i];
\r
20 Clazz.overrideMethod (c$, "getEras",
\r
23 if (this.eras != null) {
\r
24 e = new Array (this.eras.length);
\r
25 System.arraycopy (this.eras, 0, e, 0, this.eras.length);
\r
28 Clazz.overrideMethod (c$, "setEra",
\r
29 function (date, eraName) {
\r
30 if (this.eras == null) {
\r
32 }for (var i = 0; i < this.eras.length; i++) {
\r
33 var e = this.eras[i];
\r
34 if (e != null && e.getName ().equals (eraName)) {
\r
38 throw new IllegalArgumentException ("unknown era name: " + eraName);
\r
39 }, "jssun.util.calendar.CalendarDate,~S");
\r
40 Clazz.defineMethod (c$, "setEras",
\r
44 Clazz.defineMethod (c$, "getCalendarDate",
\r
46 return this.getCalendarDate (System.currentTimeMillis (), this.newCalendarDate ());
\r
48 Clazz.defineMethod (c$, "getCalendarDate",
\r
50 return this.getCalendarDate (millis, this.newCalendarDate ());
\r
52 Clazz.defineMethod (c$, "getCalendarDate",
\r
53 function (millis, zone) {
\r
54 var date = this.newCalendarDate (zone);
\r
55 return this.getCalendarDate (millis, date);
\r
56 }, "~N,java.util.TimeZone");
\r
57 Clazz.defineMethod (c$, "getCalendarDate",
\r
58 function (millis, date) {
\r
63 var zi = date.getZone ();
\r
65 var offsets = Clazz.newIntArray (2, 0);
\r
66 if (Clazz.instanceOf (zi, jssun.util.calendar.ZoneInfo)) {
\r
67 zoneOffset = (zi).getOffsets (millis, offsets);
\r
69 zoneOffset = zi.getOffset (millis);
\r
70 offsets[0] = zi.getRawOffset ();
\r
71 offsets[1] = zoneOffset - offsets[0];
\r
72 }days = Clazz.doubleToInt (zoneOffset / 86400000);
\r
73 ms = zoneOffset % 86400000;
\r
74 saving = offsets[1];
\r
75 }date.setZoneOffset (zoneOffset);
\r
76 date.setDaylightSaving (saving);
\r
77 days += Clazz.doubleToInt (millis / 86400000);
\r
78 ms += (millis % 86400000);
\r
79 if (ms >= 86400000) {
\r
88 this.getCalendarDateFromFixedDate (date, days);
\r
89 this.setTimeOfDay (date, ms);
\r
90 date.setLeapYear (this.isLeapYear (date));
\r
91 date.setNormalized (true);
\r
93 }, "~N,jssun.util.calendar.CalendarDate");
\r
94 Clazz.overrideMethod (c$, "getTime",
\r
96 var gd = this.getFixedDate (date);
\r
97 var ms = (gd - 719163) * 86400000 + this.getTimeOfDay (date);
\r
99 var zi = date.getZone ();
\r
101 if (date.isNormalized ()) {
\r
102 return ms - date.getZoneOffset ();
\r
103 }var offsets = Clazz.newIntArray (2, 0);
\r
104 if (date.isStandardTime ()) {
\r
105 if (Clazz.instanceOf (zi, jssun.util.calendar.ZoneInfo)) {
\r
106 (zi).getOffsetsByStandard (ms, offsets);
\r
107 zoneOffset = offsets[0];
\r
109 zoneOffset = zi.getOffset (ms - zi.getRawOffset ());
\r
111 if (Clazz.instanceOf (zi, jssun.util.calendar.ZoneInfo)) {
\r
112 zoneOffset = (zi).getOffsetsByWall (ms, offsets);
\r
114 zoneOffset = zi.getOffset (ms - zi.getRawOffset ());
\r
115 }}}ms -= zoneOffset;
\r
116 this.getCalendarDate (ms, date);
\r
118 }, "jssun.util.calendar.CalendarDate");
\r
119 Clazz.defineMethod (c$, "getTimeOfDay",
\r
121 var fraction = date.getTimeOfDay ();
\r
122 if (fraction != -9223372036854775808) {
\r
124 }fraction = this.getTimeOfDayValue (date);
\r
125 date.setTimeOfDay (fraction);
\r
127 }, "jssun.util.calendar.CalendarDate");
\r
128 Clazz.defineMethod (c$, "getTimeOfDayValue",
\r
130 var fraction = date.getHours ();
\r
132 fraction += date.getMinutes ();
\r
134 fraction += date.getSeconds ();
\r
136 fraction += date.getMillis ();
\r
138 }, "jssun.util.calendar.CalendarDate");
\r
139 Clazz.overrideMethod (c$, "setTimeOfDay",
\r
140 function (cdate, fraction) {
\r
141 if (fraction < 0) {
\r
142 throw new IllegalArgumentException ();
\r
143 }var normalizedState = cdate.isNormalized ();
\r
144 var time = fraction;
\r
145 var hours = Clazz.doubleToInt (time / 3600000);
\r
147 var minutes = Clazz.doubleToInt (time / 60000);
\r
149 var seconds = Clazz.doubleToInt (time / 1000);
\r
151 cdate.setHours (hours);
\r
152 cdate.setMinutes (minutes);
\r
153 cdate.setSeconds (seconds);
\r
154 cdate.setMillis (time);
\r
155 cdate.setTimeOfDay (fraction);
\r
156 if (hours < 24 && normalizedState) {
\r
157 cdate.setNormalized (normalizedState);
\r
159 }, "jssun.util.calendar.CalendarDate,~N");
\r
160 Clazz.overrideMethod (c$, "getWeekLength",
\r
164 Clazz.overrideMethod (c$, "getNthDayOfWeek",
\r
165 function (nth, dayOfWeek, date) {
\r
166 var ndate = date.clone ();
\r
167 this.normalize (ndate);
\r
168 var fd = this.getFixedDate (ndate);
\r
171 nfd = 7 * nth + jssun.util.calendar.AbstractCalendar.getDayOfWeekDateBefore (fd, dayOfWeek);
\r
173 nfd = 7 * nth + jssun.util.calendar.AbstractCalendar.getDayOfWeekDateAfter (fd, dayOfWeek);
\r
174 }this.getCalendarDateFromFixedDate (ndate, nfd);
\r
176 }, "~N,~N,jssun.util.calendar.CalendarDate");
\r
177 c$.getDayOfWeekDateBefore = Clazz.defineMethod (c$, "getDayOfWeekDateBefore",
\r
178 function (fixedDate, dayOfWeek) {
\r
179 return jssun.util.calendar.AbstractCalendar.getDayOfWeekDateOnOrBefore (fixedDate - 1, dayOfWeek);
\r
181 c$.getDayOfWeekDateAfter = Clazz.defineMethod (c$, "getDayOfWeekDateAfter",
\r
182 function (fixedDate, dayOfWeek) {
\r
183 return jssun.util.calendar.AbstractCalendar.getDayOfWeekDateOnOrBefore (fixedDate + 7, dayOfWeek);
\r
185 c$.getDayOfWeekDateOnOrBefore = Clazz.defineMethod (c$, "getDayOfWeekDateOnOrBefore",
\r
186 function (fixedDate, dayOfWeek) {
\r
187 var fd = fixedDate - (dayOfWeek - 1);
\r
189 return fixedDate - (fd % 7);
\r
190 }return fixedDate - jssun.util.calendar.CalendarUtils.mod (fd, 7);
\r
192 Clazz.defineMethod (c$, "validateTime",
\r
194 var t = date.getHours ();
\r
195 if (t < 0 || t >= 24) {
\r
197 }t = date.getMinutes ();
\r
198 if (t < 0 || t >= 60) {
\r
200 }t = date.getSeconds ();
\r
201 if (t < 0 || t >= 60) {
\r
203 }t = date.getMillis ();
\r
204 if (t < 0 || t >= 1000) {
\r
207 }, "jssun.util.calendar.CalendarDate");
\r
208 Clazz.defineMethod (c$, "normalizeTime",
\r
210 var fraction = this.getTimeOfDay (date);
\r
212 if (fraction >= 86400000) {
\r
213 days = Clazz.doubleToInt (fraction / 86400000);
\r
214 fraction %= 86400000;
\r
215 } else if (fraction < 0) {
\r
216 days = jssun.util.calendar.CalendarUtils.floorDivide (fraction, 86400000);
\r
218 fraction -= 86400000 * days;
\r
220 date.setTimeOfDay (fraction);
\r
221 }date.setMillis ((fraction % 1000));
\r
222 fraction = Clazz.doubleToInt (fraction / 1000);
\r
223 date.setSeconds ((fraction % 60));
\r
224 fraction = Clazz.doubleToInt (fraction / 60);
\r
225 date.setMinutes ((fraction % 60));
\r
226 date.setHours ((Clazz.doubleToInt (fraction / 60)));
\r
228 }, "jssun.util.calendar.CalendarDate");
\r
229 Clazz.defineStatics (c$,
\r
230 "SECOND_IN_MILLIS", 1000,
\r
231 "MINUTE_IN_MILLIS", 60000,
\r
232 "HOUR_IN_MILLIS", 3600000,
\r
233 "DAY_IN_MILLIS", 86400000,
\r
234 "EPOCH_OFFSET", 719163);
\r