comparison war/scripts/sti/ExtendedSimileTimeDate.js @ 3:cf06b77a8bbd

Committed branch of the e4D repos sti-gwt branch 16384. git-svn-id: http://dev.dariah.eu/svn/repos/eu.dariah.de/ap1/sti-gwt-dariah-geobrowser@36 f2b5be40-def6-11e0-8a09-b3c1cc336c6b
author StefanFunk <StefanFunk@f2b5be40-def6-11e0-8a09-b3c1cc336c6b>
date Tue, 17 Jul 2012 13:34:40 +0000
parents
children
comparison
equal deleted inserted replaced
2:2897af43ccc6 3:cf06b77a8bbd
1 SimileAjax.DateTime.MILLISECOND = 0;
2 SimileAjax.DateTime.SECOND = 1;
3 SimileAjax.DateTime.FIVESECONDS = 2;
4 SimileAjax.DateTime.TENSECONDS = 3;
5 SimileAjax.DateTime.HALFMINUTE = 4;
6 SimileAjax.DateTime.MINUTE = 5;
7 SimileAjax.DateTime.FIVEMINUTES = 6;
8 SimileAjax.DateTime.TENMINUTES = 7;
9 SimileAjax.DateTime.HALFHOUR = 8;
10 SimileAjax.DateTime.HOUR = 9;
11 SimileAjax.DateTime.TWOHOURS = 10;
12 SimileAjax.DateTime.FOURHOURS = 11;
13 SimileAjax.DateTime.EIGHTHOURS = 12;
14 SimileAjax.DateTime.DAY = 13;
15 SimileAjax.DateTime.TWODAYS = 14;
16 SimileAjax.DateTime.FOURDAYS = 15;
17 SimileAjax.DateTime.WEEK = 16;
18 SimileAjax.DateTime.TWOWEEKS = 17;
19 SimileAjax.DateTime.MONTH = 18;
20 SimileAjax.DateTime.QUARTER = 19;
21 SimileAjax.DateTime.SEMESTER = 20;
22 SimileAjax.DateTime.YEAR = 21;
23 SimileAjax.DateTime.TWOYEARS = 22;
24 SimileAjax.DateTime.LUSTRUM = 23;
25 SimileAjax.DateTime.DECADE = 24;
26 SimileAjax.DateTime.TWODECADES = 25;
27 SimileAjax.DateTime.HALFCENTURY = 26;
28 SimileAjax.DateTime.CENTURY = 27;
29 SimileAjax.DateTime.TWOCENTURIES = 28;
30 SimileAjax.DateTime.HALFMILLENNIUM = 29;
31 SimileAjax.DateTime.MILLENNIUM = 30;
32 SimileAjax.DateTime.TWOMILLENNIUMS = 31;
33 SimileAjax.DateTime.FIVEMILLENNIUMS = 32;
34 SimileAjax.DateTime.DECAMILLENNIUM = 33;
35 SimileAjax.DateTime.TWODECAMILLENNIUMS = 34;
36 SimileAjax.DateTime.FIVEDECAMILLENNIUMS = 35;
37 SimileAjax.DateTime.HECTOMILLENNIUM = 36;
38 SimileAjax.DateTime.TWOHECTOMILLENNIUMS = 37;
39 SimileAjax.DateTime.FIVEHECTOMILLENNIUMS = 38;
40 SimileAjax.DateTime.MEGENNIUM = 39;
41 SimileAjax.DateTime.TWOMEGENNIUMS = 40;
42 SimileAjax.DateTime.FIVEMEGENNIUMS = 41;
43 SimileAjax.DateTime.DECAMEGENNIUM = 42;
44 SimileAjax.DateTime.TWODECAMEGENNIUMS = 43;
45 SimileAjax.DateTime.FIVEDECAMEGENNIUMS = 44;
46 SimileAjax.DateTime.HECTOMEGENNIUM = 45;
47 SimileAjax.DateTime.TWOHECTOMEGENNIUMS = 46;
48 SimileAjax.DateTime.FIVEHECTOMEGENNIUMS = 47;
49 SimileAjax.DateTime.GIGENNIUM = 48;
50
51 SimileAjax.DateTime.gregorianUnitLengths = [];
52 (function(){
53 var d = SimileAjax.DateTime;
54 var a = d.gregorianUnitLengths;
55
56 a[d.MILLISECOND] = 1;
57 a[d.SECOND] = 1000;
58 a[d.FIVESECONDS] = a[d.SECOND] * 5;
59 a[d.TENSECONDS] = a[d.SECOND] * 10;
60 a[d.HALFMINUTE] = a[d.SECOND] * 30;
61 a[d.MINUTE] = a[d.SECOND] * 60;
62 a[d.FIVEMINUTES] = a[d.MINUTE] * 5;
63 a[d.TENMINUTES] = a[d.MINUTE] * 10;
64 a[d.HALFHOUR] = a[d.MINUTE] * 30;
65 a[d.HOUR] = a[d.MINUTE] * 60;
66 a[d.TWOHOURS] = a[d.HOUR] * 2;
67 a[d.FOURHOURS] = a[d.HOUR] * 4;
68 a[d.EIGHTHOURS] = a[d.HOUR] * 8;
69 a[d.DAY] = a[d.HOUR] * 24;
70 a[d.TWODAYS] = a[d.DAY] * 2;
71 a[d.FOURDAYS] = a[d.DAY] * 4;
72 a[d.WEEK] = a[d.DAY] * 7;
73 a[d.TWOWEEKS] = a[d.DAY] * 14;
74 a[d.MONTH] = a[d.DAY] * 31;
75 a[d.QUARTER] = a[d.DAY] * 91;
76 a[d.SEMESTER] = a[d.DAY] * 182;
77 a[d.YEAR] = a[d.DAY] * 365;
78 a[d.TWOYEARS] = a[d.YEAR] * 2;
79 a[d.LUSTRUM] = a[d.YEAR] * 5;
80 a[d.DECADE] = a[d.YEAR] * 10;
81 a[d.TWODECADES] = a[d.YEAR] * 20;
82 a[d.HALFCENTURY] = a[d.YEAR] * 50;
83 a[d.CENTURY] = a[d.YEAR] * 100;
84 a[d.TWOCENTURIES] = a[d.YEAR] * 200;
85 a[d.HALFMILLENNIUM] = a[d.YEAR] * 500;
86 a[d.MILLENNIUM] = a[d.YEAR] * 1000;
87 a[d.TWOMILLENNIUMS] = a[d.YEAR] * 2000;
88 a[d.FIVEMILLENNIUMS] = a[d.YEAR] * 5000;
89 a[d.DECAMILLENNIUM] = a[d.YEAR] * 10000;
90 a[d.TWODECAMILLENNIUMS] = a[d.YEAR] * 20000;
91 a[d.FIVEDECAMILLENNIUMS] = a[d.YEAR] * 50000;
92 a[d.HECTOMILLENNIUM] = a[d.YEAR] * 100000;
93 a[d.TWOHECTOMILLENNIUMS] = a[d.YEAR] * 200000;
94 a[d.FIVEHECTOMILLENNIUMS] = a[d.YEAR] * 500000;
95 a[d.MEGENNIUM] = a[d.YEAR] * 1000000;
96 a[d.TWOMEGENNIUMS] = a[d.YEAR] * 2000000;
97 a[d.FIVEMEGENNIUMS] = a[d.YEAR] * 5000000;
98 a[d.DECAMEGENNIUM] = a[d.YEAR] * 10000000;
99 a[d.TWODECAMEGENNIUMS] = a[d.YEAR] * 20000000;
100 a[d.FIVEDECAMEGENNIUMS] = a[d.YEAR] * 50000000;
101 a[d.HECTOMEGENNIUM] = a[d.YEAR] * 100000000;
102 a[d.TWOHECTOMEGENNIUM] = a[d.YEAR] * 200000000;
103 a[d.FIVEHECTOMEGENNIUM] = a[d.YEAR] * 500000000;
104 a[d.GIGENNIUM] = a[d.YEAR] * 1000000000;
105 })();
106
107 SimileAjax.DateTime.roundDownToInterval = function(date, intervalUnit, timeZone, multiple, firstDayOfWeek){
108 timeZone = (typeof timeZone == 'undefined') ? 0 : timeZone;
109 var timeShift = timeZone * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR];
110
111 var date2 = new Date(date.getTime() + timeShift);
112 var clearInDay = function(d){
113 d.setUTCMilliseconds(0);
114 d.setUTCSeconds(0);
115 d.setUTCMinutes(0);
116 d.setUTCHours(0);
117 };
118 var clearInYear = function(d){
119 clearInDay(d);
120 d.setUTCDate(1);
121 d.setUTCMonth(0);
122 };
123
124 switch (intervalUnit) {
125 case SimileAjax.DateTime.MILLISECOND:
126 var x = date2.getUTCMilliseconds();
127 date2.setUTCMilliseconds(x - (x % multiple));
128 break;
129 case SimileAjax.DateTime.SECOND:
130 date2.setUTCMilliseconds(0);
131 var x = date2.getUTCSeconds();
132 date2.setUTCSeconds(x - (x % multiple));
133 break;
134 case SimileAjax.DateTime.FIVESECONDS:
135 date2.setUTCMilliseconds(0);
136 var x = date2.getUTCSeconds();
137 date2.setUTCSeconds(x - (x % 5));
138 break;
139 case SimileAjax.DateTime.TENSECONDS:
140 date2.setUTCMilliseconds(0);
141 var x = date2.getUTCSeconds();
142 date2.setUTCSeconds(x - (x % 10));
143 break;
144 case SimileAjax.DateTime.HALFMINUTE:
145 date2.setUTCMilliseconds(0);
146 var x = date2.getUTCSeconds();
147 date2.setUTCSeconds(x - (x % 30));
148 break;
149 case SimileAjax.DateTime.MINUTE:
150 date2.setUTCMilliseconds(0);
151 date2.setUTCSeconds(0);
152 var x = date2.getUTCMinutes();
153 date2.setTime(date2.getTime() - (x % multiple) * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]);
154 break;
155 case SimileAjax.DateTime.FIVEMINUTES:
156 date2.setUTCMilliseconds(0);
157 date2.setUTCSeconds(0);
158 var x = date2.getUTCMinutes();
159 date2.setUTCMinutes(x - x % 5);
160 break;
161 case SimileAjax.DateTime.TENMINUTES:
162 date2.setUTCMilliseconds(0);
163 date2.setUTCSeconds(0);
164 var x = date2.getUTCMinutes();
165 date2.setUTCMinutes(x - x % 10);
166 break;
167 case SimileAjax.DateTime.HALFHOUR:
168 date2.setUTCMilliseconds(0);
169 date2.setUTCSeconds(0);
170 var x = date2.getUTCMinutes();
171 date2.setUTCMinutes(x - x % 30);
172 break;
173 case SimileAjax.DateTime.HOUR:
174 date2.setUTCMilliseconds(0);
175 date2.setUTCSeconds(0);
176 date2.setUTCMinutes(0);
177 var x = date2.getUTCHours();
178 date2.setUTCHours(x - (x % multiple));
179 break;
180 case SimileAjax.DateTime.TWOHOURS:
181 date2.setUTCMilliseconds(0);
182 date2.setUTCSeconds(0);
183 date2.setUTCMinutes(0);
184 var x = date2.getUTCHours();
185 date2.setUTCHours(x - (x % 2));
186 break;
187 case SimileAjax.DateTime.FOURHOURS:
188 date2.setUTCMilliseconds(0);
189 date2.setUTCSeconds(0);
190 date2.setUTCMinutes(0);
191 var x = date2.getUTCHours();
192 date2.setUTCHours(x - (x % 4));
193 break;
194 case SimileAjax.DateTime.EIGHTHOURS:
195 date2.setUTCMilliseconds(0);
196 date2.setUTCSeconds(0);
197 date2.setUTCMinutes(0);
198 var x = date2.getUTCHours();
199 date2.setUTCHours(x - (x % 8));
200 break;
201 case SimileAjax.DateTime.DAY:
202 clearInDay(date2);
203 break;
204 case SimileAjax.DateTime.TWODAYS:
205 case SimileAjax.DateTime.FOURDAYS:
206 case SimileAjax.DateTime.WEEK:
207 case SimileAjax.DateTime.TWOWEEKS:
208 clearInDay(date2);
209 break;
210 case SimileAjax.DateTime.MONTH:
211 clearInDay(date2);
212 date2.setUTCDate(1);
213 var x = date2.getUTCMonth();
214 date2.setUTCMonth(x - (x % multiple));
215 break;
216 case SimileAjax.DateTime.QUARTER:
217 clearInDay(date2);
218 date2.setUTCDate(1);
219 var x = date2.getUTCMonth();
220 date2.setUTCMonth(x - (x % 3));
221 break;
222 case SimileAjax.DateTime.SEMESTER:
223 clearInDay(date2);
224 date2.setUTCDate(1);
225 var x = date2.getUTCMonth();
226 date2.setUTCMonth(x - (x % 6));
227 break;
228 case SimileAjax.DateTime.YEAR:
229 clearInYear(date2);
230 var x = date2.getUTCFullYear();
231 date2.setUTCFullYear(x - (x % multiple));
232 break;
233 case SimileAjax.DateTime.TWOYEARS:
234 clearInYear(date2);
235 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 2) * 2);
236 break;
237 case SimileAjax.DateTime.LUSTRUM:
238 clearInYear(date2);
239 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 5) * 5);
240 break;
241 case SimileAjax.DateTime.DECADE:
242 clearInYear(date2);
243 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 10) * 10);
244 break;
245 case SimileAjax.DateTime.TWODECADES:
246 clearInYear(date2);
247 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 20) * 20);
248 break;
249 case SimileAjax.DateTime.HALFCENTURY:
250 clearInYear(date2);
251 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 50) * 50);
252 break;
253 case SimileAjax.DateTime.CENTURY:
254 clearInYear(date2);
255 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 100) * 100);
256 break;
257 case SimileAjax.DateTime.TWOCENTURIES:
258 clearInYear(date2);
259 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 200) * 200);
260 break;
261 case SimileAjax.DateTime.HALFMILLENNIUM:
262 clearInYear(date2);
263 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 500) * 500);
264 break;
265 case SimileAjax.DateTime.MILLENNIUM:
266 clearInYear(date2);
267 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 1000) * 1000);
268 break;
269 case SimileAjax.DateTime.TWOMILLENNIUMS:
270 clearInYear(date2);
271 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 2000) * 2000);
272 break;
273 case SimileAjax.DateTime.FIVEMILLENNIUMS:
274 clearInYear(date2);
275 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 5000) * 5000);
276 break;
277 case SimileAjax.DateTime.DECAMILLENNIUM:
278 clearInYear(date2);
279 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 10000) * 10000);
280 break;
281 case SimileAjax.DateTime.TWODECAMILLENNIUMS:
282 clearInYear(date2);
283 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 20000) * 20000);
284 break;
285 case SimileAjax.DateTime.FIVEDECAMILLENNIUMS:
286 clearInYear(date2);
287 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 50000) * 50000);
288 break;
289 case SimileAjax.DateTime.HECTOMILLENNIUM:
290 clearInYear(date2);
291 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 100000) * 100000);
292 break;
293 case SimileAjax.DateTime.TWOHECTOMILLENNIUMS:
294 clearInYear(date2);
295 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 200000) * 200000);
296 break;
297 case SimileAjax.DateTime.FIVEHECTOMILLENNIUMS:
298 clearInYear(date2);
299 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 500000) * 500000);
300 break;
301 case SimileAjax.DateTime.MEGENNIUM:
302 clearInYear(date2);
303 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 1000000) * 1000000);
304 break;
305 case SimileAjax.DateTime.TWOMEGENNIUMS:
306 clearInYear(date2);
307 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 2000000) * 2000000);
308 break;
309 case SimileAjax.DateTime.FIVEMEGENNIUMS:
310 clearInYear(date2);
311 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 5000000) * 5000000);
312 break;
313 case SimileAjax.DateTime.DECAMEGENNIUM:
314 clearInYear(date2);
315 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 10000000) * 10000000);
316 break;
317 case SimileAjax.DateTime.HECTOMEGENNIUM:
318 clearInYear(date2);
319 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 100000000) * 100000000);
320 break;
321 case SimileAjax.DateTime.TWOHECTOMEGENNIUMS:
322 clearInYear(date2);
323 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 200000000) * 200000000);
324 break;
325 case SimileAjax.DateTime.FIVEHECTOMEGENNIUMS:
326 clearInYear(date2);
327 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 500000000) * 500000000);
328 break;
329 case SimileAjax.DateTime.GIGENNIUM:
330 clearInYear(date2);
331 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 1000000000) * 1000000000);
332 break;
333 }
334
335 date.setTime(date2.getTime() - timeShift);
336 };
337
338 SimileAjax.DateTime.incrementByInterval = function(date, intervalUnit, timeZone){
339 timeZone = (typeof timeZone == 'undefined') ? 0 : timeZone;
340
341 var timeShift = timeZone * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR];
342
343 var date2 = new Date(date.getTime() + timeShift);
344
345 switch (intervalUnit) {
346 case SimileAjax.DateTime.MILLISECOND:
347 date2.setTime(date2.getTime() + 1)
348 break;
349 case SimileAjax.DateTime.SECOND:
350 date2.setTime(date2.getTime() + 1000);
351 break;
352 case SimileAjax.DateTime.FIVESECONDS:
353 date2.setTime(date2.getTime() + 5000);
354 break;
355 case SimileAjax.DateTime.TENSECONDS:
356 date2.setTime(date2.getTime() + 10000);
357 break;
358 case SimileAjax.DateTime.HALFMINUTE:
359 date2.setTime(date2.getTime() + 30000);
360 break;
361 case SimileAjax.DateTime.MINUTE:
362 date2.setTime(date2.getTime() + SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]);
363 break;
364 case SimileAjax.DateTime.FIVEMINUTES:
365 date2.setTime(date2.getTime() + 5 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]);
366 break;
367 case SimileAjax.DateTime.TENMINUTES:
368 date2.setTime(date2.getTime() + 10 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]);
369 break;
370 case SimileAjax.DateTime.HALFHOUR:
371 date2.setTime(date2.getTime() + 30 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]);
372 break;
373 case SimileAjax.DateTime.HOUR:
374 date2.setTime(date2.getTime() + SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]);
375 break;
376 case SimileAjax.DateTime.TWOHOURS:
377 date2.setTime(date2.getTime() + 2 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]);
378 break;
379 case SimileAjax.DateTime.FOURHOURS:
380 date2.setTime(date2.getTime() + 4 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]);
381 break;
382 case SimileAjax.DateTime.EIGHTHOURS:
383 date2.setTime(date2.getTime() + 8 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]);
384 break;
385 case SimileAjax.DateTime.DAY:
386 date2.setUTCDate(date2.getUTCDate() + 1);
387 break;
388 case SimileAjax.DateTime.TWODAYS:
389 date2.setUTCDate(date2.getUTCDate() + 2);
390 break;
391 case SimileAjax.DateTime.FOURDAYS:
392 date2.setUTCDate(date2.getUTCDate() + 4);
393 break;
394 case SimileAjax.DateTime.WEEK:
395 date2.setUTCDate(date2.getUTCDate() + 7);
396 break;
397 case SimileAjax.DateTime.TWOWEEKS:
398 date2.setUTCDate(date2.getUTCDate() + 14);
399 break;
400 case SimileAjax.DateTime.MONTH:
401 date2.setUTCMonth(date2.getUTCMonth() + 1);
402 break;
403 case SimileAjax.DateTime.QUARTER:
404 date2.setUTCMonth(date2.getUTCMonth() + 3);
405 break;
406 case SimileAjax.DateTime.SEMESTER:
407 date2.setUTCMonth(date2.getUTCMonth() + 6);
408 break;
409 case SimileAjax.DateTime.YEAR:
410 date2.setUTCFullYear(date2.getUTCFullYear() + 1);
411 break;
412 case SimileAjax.DateTime.TWOYEARS:
413 date2.setUTCFullYear(date2.getUTCFullYear() + 2);
414 break;
415 case SimileAjax.DateTime.LUSTRUM:
416 date2.setUTCFullYear(date2.getUTCFullYear() + 5);
417 break;
418 case SimileAjax.DateTime.DECADE:
419 date2.setUTCFullYear(date2.getUTCFullYear() + 10);
420 break;
421 case SimileAjax.DateTime.TWODECADES:
422 date2.setUTCFullYear(date2.getUTCFullYear() + 20);
423 break;
424 case SimileAjax.DateTime.HALFCENTURY:
425 date2.setUTCFullYear(date2.getUTCFullYear() + 50);
426 break;
427 case SimileAjax.DateTime.CENTURY:
428 date2.setUTCFullYear(date2.getUTCFullYear() + 100);
429 break;
430 case SimileAjax.DateTime.TWOCENTURIES:
431 date2.setUTCFullYear(date2.getUTCFullYear() + 200);
432 break;
433 case SimileAjax.DateTime.HALFMILLENNIUM:
434 date2.setUTCFullYear(date2.getUTCFullYear() + 500);
435 break;
436 case SimileAjax.DateTime.MILLENNIUM:
437 date2.setUTCFullYear(date2.getUTCFullYear() + 1000);
438 break;
439 case SimileAjax.DateTime.TWOMILLENNIUMS:
440 date2.setUTCFullYear(date2.getUTCFullYear() + 2000);
441 break;
442 case SimileAjax.DateTime.FIVEMILLENNIUMS:
443 date2.setUTCFullYear(date2.getUTCFullYear() + 5000);
444 break;
445 case SimileAjax.DateTime.DECAMILLENNIUM:
446 date2.setUTCFullYear(date2.getUTCFullYear() + 10000);
447 break;
448 case SimileAjax.DateTime.TWODECAMILLENNIUMS:
449 date2.setUTCFullYear(date2.getUTCFullYear() + 20000);
450 break;
451 case SimileAjax.DateTime.FIVEDECAMILLENNIUMS:
452 date2.setUTCFullYear(date2.getUTCFullYear() + 50000);
453 break;
454 case SimileAjax.DateTime.HECTOMILLENNIUM:
455 date2.setUTCFullYear(date2.getUTCFullYear() + 100000);
456 break;
457 case SimileAjax.DateTime.TWOHECTOMILLENNIUMS:
458 date2.setUTCFullYear(date2.getUTCFullYear() + 200000);
459 break;
460 case SimileAjax.DateTime.FIVEHECTOMILLENNIUMS:
461 date2.setUTCFullYear(date2.getUTCFullYear() + 500000);
462 break;
463 case SimileAjax.DateTime.MEGENNIUM:
464 date2.setUTCFullYear(date2.getUTCFullYear() + 1000000);
465 break;
466 case SimileAjax.DateTime.TWOMEGENNIUMS:
467 date2.setUTCFullYear(date2.getUTCFullYear() + 2000000);
468 break;
469 case SimileAjax.DateTime.FIVEMEGENNIUMS:
470 date2.setUTCFullYear(date2.getUTCFullYear() + 5000000);
471 break;
472 case SimileAjax.DateTime.DECAMEGENNIUM:
473 date2.setUTCFullYear(date2.getUTCFullYear() + 10000000);
474 break;
475 case SimileAjax.DateTime.TWODECAMEGENNIUMS:
476 date2.setUTCFullYear(date2.getUTCFullYear() + 20000000);
477 break;
478 case SimileAjax.DateTime.FIVEDECAMEGENNIUMS:
479 date2.setUTCFullYear(date2.getUTCFullYear() + 50000000);
480 break;
481 case SimileAjax.DateTime.HECTOMEGENNIUM:
482 date2.setUTCFullYear(date2.getUTCFullYear() + 100000000);
483 break;
484 case SimileAjax.DateTime.TWOHECTOMEGENNIUMS:
485 date2.setUTCFullYear(date2.getUTCFullYear() + 200000000);
486 break;
487 case SimileAjax.DateTime.FIVEHECTOMEGENNIUMS:
488 date2.setUTCFullYear(date2.getUTCFullYear() + 500000000);
489 break;
490 case SimileAjax.DateTime.GIGENNIUM:
491 date2.setUTCFullYear(date2.getUTCFullYear() + 1000000000);
492 break;
493 }
494 date.setTime(date2.getTime() - timeShift);
495 };
496
497 SimileAjax.DateTime.getTimeLabel = function( unit, t ){
498 var time = SimileAjax.DateTime;
499 var second = t.getUTCSeconds();
500 var minute = t.getUTCMinutes();
501 var hour = t.getUTCHours();
502 var day = t.getUTCDate();
503 var month = t.getUTCMonth()+1;
504 var year = t.getUTCFullYear();
505 switch(unit){
506 case time.SECOND:
507 case time.FIVESECONDS:
508 case time.TENSECONDS:
509 case time.HALFMINUTE:
510 return hour+":"+((minute<10)?"0":"")+minute+":"+((second<10)?"0":"")+second;
511 case time.MINUTE:
512 case time.FIVEMINUTES:
513 case time.TENMINUTES:
514 case time.HALFHOUR:
515 return hour+":"+((minute<10)?"0":"")+minute;
516 case time.TWOHOURS:
517 case time.FOURHOURS:
518 case time.EIGHTHOURS:
519 case time.HOUR:
520 return hour + ":00";
521 case time.DAY:
522 case time.TWODAYS:
523 case time.FOURDAYS:
524 case time.WEEK:
525 case time.TWOWEEKS:
526 case time.MONTH:
527 case time.QUARTER:
528 case time.SEMESTER:
529 return year+"-"+((month<10)?"0":"")+month+"-"+((day<10)?"0":"")+day;
530 case time.YEAR:
531 case time.TWOYEARS:
532 case time.LUSTRUM:
533 case time.DECADE:
534 case time.TWODECADES:
535 case time.HALFCENTURY:
536 case time.CENTURY:
537 case time.TWOCENTURIES:
538 case time.HALFMILLENNIUM:
539 case time.MILLENNIUM:
540 return year;
541 case time.TWOMILLENNIUMS:
542 case time.FIVEMILLENNIUMS:
543 case time.DECAMILLENNIUM:
544 case time.TWODECAMILLENNIUMS:
545 case time.FIVEDECAMILLENNIUMS:
546 case time.HECTOMILLENNIUM:
547 case time.TWOHECTOMILLENNIUMS:
548 case time.FIVEHECTOMILLENNIUMS:
549 return Math.floor(year/1000) + "k";
550 case time.MEGENNIUM:
551 case time.TWOMEGENNIUMS:
552 case time.FIVEMEGENNIUMS:
553 case time.DECAMEGENNIUM:
554 case time.TWODECAMEGENNIUMS:
555 case time.FIVEDECAMEGENNIUMS:
556 case time.HECTOMEGENNIUM:
557 case time.TWOHECTOMEGENNIUMS:
558 case time.FIVEHECTOMEGENNIUMS:
559 return Math.floor(year/1000000) + "mill";
560 }
561 };
562
563 SimileAjax.DateTime.getTimeString = function( unit, t ){
564 var time = SimileAjax.DateTime;
565 switch(unit){
566 case time.MILLISECOND:
567 case time.SECOND:
568 case time.FIVESECONDS:
569 case time.TENSECONDS:
570 case time.HALFMINUTE:
571 case time.MINUTE:
572 case time.FIVEMINUTES:
573 case time.TENMINUTES:
574 case time.HALFHOUR:
575 case time.HOUR:
576 case time.TWOHOURS:
577 case time.FOURHOURS:
578 case time.EIGHTHOURS:
579 var m = t.getUTCMonth()+1;
580 var d = t.getUTCDate();
581 var h = t.getUTCHours();
582 var min = t.getUTCMinutes();
583 var s = t.getUTCSeconds();
584 return t.getUTCFullYear()+"-"+((m<10)?"0":"")+m+"-"+((d<10)?"0":"")+d+" "+((h<10)?"0":"")+h+":"+((min<10)?"0":"")+min+":"+((s<10)?"0":"")+s;
585 case time.DAY:
586 case time.TWODAYS:
587 case time.FOURDAYS:
588 case time.WEEK:
589 case time.TWOWEEKS:
590 case time.MONTH:
591 case time.QUARTER:
592 case time.SEMESTER:
593 var m = t.getUTCMonth()+1;
594 var d = t.getUTCDate();
595 return t.getUTCFullYear()+"-"+((m<10)?"0":"")+m+"-"+((d<10)?"0":"")+d;
596 case time.YEAR:
597 case time.TWOYEARS:
598 case time.LUSTRUM:
599 case time.DECADE:
600 case time.TWODECADES:
601 case time.HALFCENTURY:
602 case time.CENTURY:
603 case time.TWOCENTURIES:
604 case time.HALFMILLENNIUM:
605 case time.MILLENNIUM:
606 return t.getUTCFullYear();
607 case time.TWOMILLENNIUMS:
608 case time.FIVEMILLENNIUMS:
609 case time.DECAMILLENNIUM:
610 case time.TWODECAMILLENNIUMS:
611 case time.FIVEDECAMILLENNIUMS:
612 case time.HECTOMILLENNIUM:
613 case time.TWOHECTOMILLENNIUMS:
614 case time.FIVEHECTOMILLENNIUMS:
615 return Math.floor(t.getUTCFullYear() / 1000) + "k";
616 case time.MEGENNIUM:
617 case time.TWOMEGENNIUMS:
618 case time.FIVEMEGENNIUMS:
619 case time.DECAMEGENNIUM:
620 case time.TWODECAMEGENNIUMS:
621 case time.FIVEDECAMEGENNIUMS:
622 case time.HECTOMEGENNIUM:
623 case time.TWOHECTOMEGENNIUMS:
624 case time.FIVEHECTOMEGENNIUMS:
625 return Math.floor(t.getUTCFullYear() / 1000000) + "mill";
626 }
627 };