Mercurial > hg > STI-GWT
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/war/scripts/sti/ExtendedSimileTimeDate.js Tue Jul 17 13:34:40 2012 +0000 @@ -0,0 +1,627 @@ +SimileAjax.DateTime.MILLISECOND = 0; +SimileAjax.DateTime.SECOND = 1; +SimileAjax.DateTime.FIVESECONDS = 2; +SimileAjax.DateTime.TENSECONDS = 3; +SimileAjax.DateTime.HALFMINUTE = 4; +SimileAjax.DateTime.MINUTE = 5; +SimileAjax.DateTime.FIVEMINUTES = 6; +SimileAjax.DateTime.TENMINUTES = 7; +SimileAjax.DateTime.HALFHOUR = 8; +SimileAjax.DateTime.HOUR = 9; +SimileAjax.DateTime.TWOHOURS = 10; +SimileAjax.DateTime.FOURHOURS = 11; +SimileAjax.DateTime.EIGHTHOURS = 12; +SimileAjax.DateTime.DAY = 13; +SimileAjax.DateTime.TWODAYS = 14; +SimileAjax.DateTime.FOURDAYS = 15; +SimileAjax.DateTime.WEEK = 16; +SimileAjax.DateTime.TWOWEEKS = 17; +SimileAjax.DateTime.MONTH = 18; +SimileAjax.DateTime.QUARTER = 19; +SimileAjax.DateTime.SEMESTER = 20; +SimileAjax.DateTime.YEAR = 21; +SimileAjax.DateTime.TWOYEARS = 22; +SimileAjax.DateTime.LUSTRUM = 23; +SimileAjax.DateTime.DECADE = 24; +SimileAjax.DateTime.TWODECADES = 25; +SimileAjax.DateTime.HALFCENTURY = 26; +SimileAjax.DateTime.CENTURY = 27; +SimileAjax.DateTime.TWOCENTURIES = 28; +SimileAjax.DateTime.HALFMILLENNIUM = 29; +SimileAjax.DateTime.MILLENNIUM = 30; +SimileAjax.DateTime.TWOMILLENNIUMS = 31; +SimileAjax.DateTime.FIVEMILLENNIUMS = 32; +SimileAjax.DateTime.DECAMILLENNIUM = 33; +SimileAjax.DateTime.TWODECAMILLENNIUMS = 34; +SimileAjax.DateTime.FIVEDECAMILLENNIUMS = 35; +SimileAjax.DateTime.HECTOMILLENNIUM = 36; +SimileAjax.DateTime.TWOHECTOMILLENNIUMS = 37; +SimileAjax.DateTime.FIVEHECTOMILLENNIUMS = 38; +SimileAjax.DateTime.MEGENNIUM = 39; +SimileAjax.DateTime.TWOMEGENNIUMS = 40; +SimileAjax.DateTime.FIVEMEGENNIUMS = 41; +SimileAjax.DateTime.DECAMEGENNIUM = 42; +SimileAjax.DateTime.TWODECAMEGENNIUMS = 43; +SimileAjax.DateTime.FIVEDECAMEGENNIUMS = 44; +SimileAjax.DateTime.HECTOMEGENNIUM = 45; +SimileAjax.DateTime.TWOHECTOMEGENNIUMS = 46; +SimileAjax.DateTime.FIVEHECTOMEGENNIUMS = 47; +SimileAjax.DateTime.GIGENNIUM = 48; + +SimileAjax.DateTime.gregorianUnitLengths = []; +(function(){ + var d = SimileAjax.DateTime; + var a = d.gregorianUnitLengths; + + a[d.MILLISECOND] = 1; + a[d.SECOND] = 1000; + a[d.FIVESECONDS] = a[d.SECOND] * 5; + a[d.TENSECONDS] = a[d.SECOND] * 10; + a[d.HALFMINUTE] = a[d.SECOND] * 30; + a[d.MINUTE] = a[d.SECOND] * 60; + a[d.FIVEMINUTES] = a[d.MINUTE] * 5; + a[d.TENMINUTES] = a[d.MINUTE] * 10; + a[d.HALFHOUR] = a[d.MINUTE] * 30; + a[d.HOUR] = a[d.MINUTE] * 60; + a[d.TWOHOURS] = a[d.HOUR] * 2; + a[d.FOURHOURS] = a[d.HOUR] * 4; + a[d.EIGHTHOURS] = a[d.HOUR] * 8; + a[d.DAY] = a[d.HOUR] * 24; + a[d.TWODAYS] = a[d.DAY] * 2; + a[d.FOURDAYS] = a[d.DAY] * 4; + a[d.WEEK] = a[d.DAY] * 7; + a[d.TWOWEEKS] = a[d.DAY] * 14; + a[d.MONTH] = a[d.DAY] * 31; + a[d.QUARTER] = a[d.DAY] * 91; + a[d.SEMESTER] = a[d.DAY] * 182; + a[d.YEAR] = a[d.DAY] * 365; + a[d.TWOYEARS] = a[d.YEAR] * 2; + a[d.LUSTRUM] = a[d.YEAR] * 5; + a[d.DECADE] = a[d.YEAR] * 10; + a[d.TWODECADES] = a[d.YEAR] * 20; + a[d.HALFCENTURY] = a[d.YEAR] * 50; + a[d.CENTURY] = a[d.YEAR] * 100; + a[d.TWOCENTURIES] = a[d.YEAR] * 200; + a[d.HALFMILLENNIUM] = a[d.YEAR] * 500; + a[d.MILLENNIUM] = a[d.YEAR] * 1000; + a[d.TWOMILLENNIUMS] = a[d.YEAR] * 2000; + a[d.FIVEMILLENNIUMS] = a[d.YEAR] * 5000; + a[d.DECAMILLENNIUM] = a[d.YEAR] * 10000; + a[d.TWODECAMILLENNIUMS] = a[d.YEAR] * 20000; + a[d.FIVEDECAMILLENNIUMS] = a[d.YEAR] * 50000; + a[d.HECTOMILLENNIUM] = a[d.YEAR] * 100000; + a[d.TWOHECTOMILLENNIUMS] = a[d.YEAR] * 200000; + a[d.FIVEHECTOMILLENNIUMS] = a[d.YEAR] * 500000; + a[d.MEGENNIUM] = a[d.YEAR] * 1000000; + a[d.TWOMEGENNIUMS] = a[d.YEAR] * 2000000; + a[d.FIVEMEGENNIUMS] = a[d.YEAR] * 5000000; + a[d.DECAMEGENNIUM] = a[d.YEAR] * 10000000; + a[d.TWODECAMEGENNIUMS] = a[d.YEAR] * 20000000; + a[d.FIVEDECAMEGENNIUMS] = a[d.YEAR] * 50000000; + a[d.HECTOMEGENNIUM] = a[d.YEAR] * 100000000; + a[d.TWOHECTOMEGENNIUM] = a[d.YEAR] * 200000000; + a[d.FIVEHECTOMEGENNIUM] = a[d.YEAR] * 500000000; + a[d.GIGENNIUM] = a[d.YEAR] * 1000000000; +})(); + +SimileAjax.DateTime.roundDownToInterval = function(date, intervalUnit, timeZone, multiple, firstDayOfWeek){ + timeZone = (typeof timeZone == 'undefined') ? 0 : timeZone; + var timeShift = timeZone * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]; + + var date2 = new Date(date.getTime() + timeShift); + var clearInDay = function(d){ + d.setUTCMilliseconds(0); + d.setUTCSeconds(0); + d.setUTCMinutes(0); + d.setUTCHours(0); + }; + var clearInYear = function(d){ + clearInDay(d); + d.setUTCDate(1); + d.setUTCMonth(0); + }; + + switch (intervalUnit) { + case SimileAjax.DateTime.MILLISECOND: + var x = date2.getUTCMilliseconds(); + date2.setUTCMilliseconds(x - (x % multiple)); + break; + case SimileAjax.DateTime.SECOND: + date2.setUTCMilliseconds(0); + var x = date2.getUTCSeconds(); + date2.setUTCSeconds(x - (x % multiple)); + break; + case SimileAjax.DateTime.FIVESECONDS: + date2.setUTCMilliseconds(0); + var x = date2.getUTCSeconds(); + date2.setUTCSeconds(x - (x % 5)); + break; + case SimileAjax.DateTime.TENSECONDS: + date2.setUTCMilliseconds(0); + var x = date2.getUTCSeconds(); + date2.setUTCSeconds(x - (x % 10)); + break; + case SimileAjax.DateTime.HALFMINUTE: + date2.setUTCMilliseconds(0); + var x = date2.getUTCSeconds(); + date2.setUTCSeconds(x - (x % 30)); + break; + case SimileAjax.DateTime.MINUTE: + date2.setUTCMilliseconds(0); + date2.setUTCSeconds(0); + var x = date2.getUTCMinutes(); + date2.setTime(date2.getTime() - (x % multiple) * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]); + break; + case SimileAjax.DateTime.FIVEMINUTES: + date2.setUTCMilliseconds(0); + date2.setUTCSeconds(0); + var x = date2.getUTCMinutes(); + date2.setUTCMinutes(x - x % 5); + break; + case SimileAjax.DateTime.TENMINUTES: + date2.setUTCMilliseconds(0); + date2.setUTCSeconds(0); + var x = date2.getUTCMinutes(); + date2.setUTCMinutes(x - x % 10); + break; + case SimileAjax.DateTime.HALFHOUR: + date2.setUTCMilliseconds(0); + date2.setUTCSeconds(0); + var x = date2.getUTCMinutes(); + date2.setUTCMinutes(x - x % 30); + break; + case SimileAjax.DateTime.HOUR: + date2.setUTCMilliseconds(0); + date2.setUTCSeconds(0); + date2.setUTCMinutes(0); + var x = date2.getUTCHours(); + date2.setUTCHours(x - (x % multiple)); + break; + case SimileAjax.DateTime.TWOHOURS: + date2.setUTCMilliseconds(0); + date2.setUTCSeconds(0); + date2.setUTCMinutes(0); + var x = date2.getUTCHours(); + date2.setUTCHours(x - (x % 2)); + break; + case SimileAjax.DateTime.FOURHOURS: + date2.setUTCMilliseconds(0); + date2.setUTCSeconds(0); + date2.setUTCMinutes(0); + var x = date2.getUTCHours(); + date2.setUTCHours(x - (x % 4)); + break; + case SimileAjax.DateTime.EIGHTHOURS: + date2.setUTCMilliseconds(0); + date2.setUTCSeconds(0); + date2.setUTCMinutes(0); + var x = date2.getUTCHours(); + date2.setUTCHours(x - (x % 8)); + break; + case SimileAjax.DateTime.DAY: + clearInDay(date2); + break; + case SimileAjax.DateTime.TWODAYS: + case SimileAjax.DateTime.FOURDAYS: + case SimileAjax.DateTime.WEEK: + case SimileAjax.DateTime.TWOWEEKS: + clearInDay(date2); + break; + case SimileAjax.DateTime.MONTH: + clearInDay(date2); + date2.setUTCDate(1); + var x = date2.getUTCMonth(); + date2.setUTCMonth(x - (x % multiple)); + break; + case SimileAjax.DateTime.QUARTER: + clearInDay(date2); + date2.setUTCDate(1); + var x = date2.getUTCMonth(); + date2.setUTCMonth(x - (x % 3)); + break; + case SimileAjax.DateTime.SEMESTER: + clearInDay(date2); + date2.setUTCDate(1); + var x = date2.getUTCMonth(); + date2.setUTCMonth(x - (x % 6)); + break; + case SimileAjax.DateTime.YEAR: + clearInYear(date2); + var x = date2.getUTCFullYear(); + date2.setUTCFullYear(x - (x % multiple)); + break; + case SimileAjax.DateTime.TWOYEARS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 2) * 2); + break; + case SimileAjax.DateTime.LUSTRUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 5) * 5); + break; + case SimileAjax.DateTime.DECADE: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 10) * 10); + break; + case SimileAjax.DateTime.TWODECADES: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 20) * 20); + break; + case SimileAjax.DateTime.HALFCENTURY: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 50) * 50); + break; + case SimileAjax.DateTime.CENTURY: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 100) * 100); + break; + case SimileAjax.DateTime.TWOCENTURIES: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 200) * 200); + break; + case SimileAjax.DateTime.HALFMILLENNIUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 500) * 500); + break; + case SimileAjax.DateTime.MILLENNIUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 1000) * 1000); + break; + case SimileAjax.DateTime.TWOMILLENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 2000) * 2000); + break; + case SimileAjax.DateTime.FIVEMILLENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 5000) * 5000); + break; + case SimileAjax.DateTime.DECAMILLENNIUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 10000) * 10000); + break; + case SimileAjax.DateTime.TWODECAMILLENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 20000) * 20000); + break; + case SimileAjax.DateTime.FIVEDECAMILLENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 50000) * 50000); + break; + case SimileAjax.DateTime.HECTOMILLENNIUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 100000) * 100000); + break; + case SimileAjax.DateTime.TWOHECTOMILLENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 200000) * 200000); + break; + case SimileAjax.DateTime.FIVEHECTOMILLENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 500000) * 500000); + break; + case SimileAjax.DateTime.MEGENNIUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 1000000) * 1000000); + break; + case SimileAjax.DateTime.TWOMEGENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 2000000) * 2000000); + break; + case SimileAjax.DateTime.FIVEMEGENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 5000000) * 5000000); + break; + case SimileAjax.DateTime.DECAMEGENNIUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 10000000) * 10000000); + break; + case SimileAjax.DateTime.HECTOMEGENNIUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 100000000) * 100000000); + break; + case SimileAjax.DateTime.TWOHECTOMEGENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 200000000) * 200000000); + break; + case SimileAjax.DateTime.FIVEHECTOMEGENNIUMS: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 500000000) * 500000000); + break; + case SimileAjax.DateTime.GIGENNIUM: + clearInYear(date2); + date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / 1000000000) * 1000000000); + break; + } + + date.setTime(date2.getTime() - timeShift); +}; + +SimileAjax.DateTime.incrementByInterval = function(date, intervalUnit, timeZone){ + timeZone = (typeof timeZone == 'undefined') ? 0 : timeZone; + + var timeShift = timeZone * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]; + + var date2 = new Date(date.getTime() + timeShift); + + switch (intervalUnit) { + case SimileAjax.DateTime.MILLISECOND: + date2.setTime(date2.getTime() + 1) + break; + case SimileAjax.DateTime.SECOND: + date2.setTime(date2.getTime() + 1000); + break; + case SimileAjax.DateTime.FIVESECONDS: + date2.setTime(date2.getTime() + 5000); + break; + case SimileAjax.DateTime.TENSECONDS: + date2.setTime(date2.getTime() + 10000); + break; + case SimileAjax.DateTime.HALFMINUTE: + date2.setTime(date2.getTime() + 30000); + break; + case SimileAjax.DateTime.MINUTE: + date2.setTime(date2.getTime() + SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]); + break; + case SimileAjax.DateTime.FIVEMINUTES: + date2.setTime(date2.getTime() + 5 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]); + break; + case SimileAjax.DateTime.TENMINUTES: + date2.setTime(date2.getTime() + 10 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]); + break; + case SimileAjax.DateTime.HALFHOUR: + date2.setTime(date2.getTime() + 30 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]); + break; + case SimileAjax.DateTime.HOUR: + date2.setTime(date2.getTime() + SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]); + break; + case SimileAjax.DateTime.TWOHOURS: + date2.setTime(date2.getTime() + 2 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]); + break; + case SimileAjax.DateTime.FOURHOURS: + date2.setTime(date2.getTime() + 4 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]); + break; + case SimileAjax.DateTime.EIGHTHOURS: + date2.setTime(date2.getTime() + 8 * SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]); + break; + case SimileAjax.DateTime.DAY: + date2.setUTCDate(date2.getUTCDate() + 1); + break; + case SimileAjax.DateTime.TWODAYS: + date2.setUTCDate(date2.getUTCDate() + 2); + break; + case SimileAjax.DateTime.FOURDAYS: + date2.setUTCDate(date2.getUTCDate() + 4); + break; + case SimileAjax.DateTime.WEEK: + date2.setUTCDate(date2.getUTCDate() + 7); + break; + case SimileAjax.DateTime.TWOWEEKS: + date2.setUTCDate(date2.getUTCDate() + 14); + break; + case SimileAjax.DateTime.MONTH: + date2.setUTCMonth(date2.getUTCMonth() + 1); + break; + case SimileAjax.DateTime.QUARTER: + date2.setUTCMonth(date2.getUTCMonth() + 3); + break; + case SimileAjax.DateTime.SEMESTER: + date2.setUTCMonth(date2.getUTCMonth() + 6); + break; + case SimileAjax.DateTime.YEAR: + date2.setUTCFullYear(date2.getUTCFullYear() + 1); + break; + case SimileAjax.DateTime.TWOYEARS: + date2.setUTCFullYear(date2.getUTCFullYear() + 2); + break; + case SimileAjax.DateTime.LUSTRUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 5); + break; + case SimileAjax.DateTime.DECADE: + date2.setUTCFullYear(date2.getUTCFullYear() + 10); + break; + case SimileAjax.DateTime.TWODECADES: + date2.setUTCFullYear(date2.getUTCFullYear() + 20); + break; + case SimileAjax.DateTime.HALFCENTURY: + date2.setUTCFullYear(date2.getUTCFullYear() + 50); + break; + case SimileAjax.DateTime.CENTURY: + date2.setUTCFullYear(date2.getUTCFullYear() + 100); + break; + case SimileAjax.DateTime.TWOCENTURIES: + date2.setUTCFullYear(date2.getUTCFullYear() + 200); + break; + case SimileAjax.DateTime.HALFMILLENNIUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 500); + break; + case SimileAjax.DateTime.MILLENNIUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 1000); + break; + case SimileAjax.DateTime.TWOMILLENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 2000); + break; + case SimileAjax.DateTime.FIVEMILLENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 5000); + break; + case SimileAjax.DateTime.DECAMILLENNIUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 10000); + break; + case SimileAjax.DateTime.TWODECAMILLENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 20000); + break; + case SimileAjax.DateTime.FIVEDECAMILLENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 50000); + break; + case SimileAjax.DateTime.HECTOMILLENNIUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 100000); + break; + case SimileAjax.DateTime.TWOHECTOMILLENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 200000); + break; + case SimileAjax.DateTime.FIVEHECTOMILLENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 500000); + break; + case SimileAjax.DateTime.MEGENNIUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 1000000); + break; + case SimileAjax.DateTime.TWOMEGENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 2000000); + break; + case SimileAjax.DateTime.FIVEMEGENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 5000000); + break; + case SimileAjax.DateTime.DECAMEGENNIUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 10000000); + break; + case SimileAjax.DateTime.TWODECAMEGENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 20000000); + break; + case SimileAjax.DateTime.FIVEDECAMEGENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 50000000); + break; + case SimileAjax.DateTime.HECTOMEGENNIUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 100000000); + break; + case SimileAjax.DateTime.TWOHECTOMEGENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 200000000); + break; + case SimileAjax.DateTime.FIVEHECTOMEGENNIUMS: + date2.setUTCFullYear(date2.getUTCFullYear() + 500000000); + break; + case SimileAjax.DateTime.GIGENNIUM: + date2.setUTCFullYear(date2.getUTCFullYear() + 1000000000); + break; + } + date.setTime(date2.getTime() - timeShift); +}; + +SimileAjax.DateTime.getTimeLabel = function( unit, t ){ + var time = SimileAjax.DateTime; + var second = t.getUTCSeconds(); + var minute = t.getUTCMinutes(); + var hour = t.getUTCHours(); + var day = t.getUTCDate(); + var month = t.getUTCMonth()+1; + var year = t.getUTCFullYear(); + switch(unit){ + case time.SECOND: + case time.FIVESECONDS: + case time.TENSECONDS: + case time.HALFMINUTE: + return hour+":"+((minute<10)?"0":"")+minute+":"+((second<10)?"0":"")+second; + case time.MINUTE: + case time.FIVEMINUTES: + case time.TENMINUTES: + case time.HALFHOUR: + return hour+":"+((minute<10)?"0":"")+minute; + case time.TWOHOURS: + case time.FOURHOURS: + case time.EIGHTHOURS: + case time.HOUR: + return hour + ":00"; + case time.DAY: + case time.TWODAYS: + case time.FOURDAYS: + case time.WEEK: + case time.TWOWEEKS: + case time.MONTH: + case time.QUARTER: + case time.SEMESTER: + return year+"-"+((month<10)?"0":"")+month+"-"+((day<10)?"0":"")+day; + case time.YEAR: + case time.TWOYEARS: + case time.LUSTRUM: + case time.DECADE: + case time.TWODECADES: + case time.HALFCENTURY: + case time.CENTURY: + case time.TWOCENTURIES: + case time.HALFMILLENNIUM: + case time.MILLENNIUM: + return year; + case time.TWOMILLENNIUMS: + case time.FIVEMILLENNIUMS: + case time.DECAMILLENNIUM: + case time.TWODECAMILLENNIUMS: + case time.FIVEDECAMILLENNIUMS: + case time.HECTOMILLENNIUM: + case time.TWOHECTOMILLENNIUMS: + case time.FIVEHECTOMILLENNIUMS: + return Math.floor(year/1000) + "k"; + case time.MEGENNIUM: + case time.TWOMEGENNIUMS: + case time.FIVEMEGENNIUMS: + case time.DECAMEGENNIUM: + case time.TWODECAMEGENNIUMS: + case time.FIVEDECAMEGENNIUMS: + case time.HECTOMEGENNIUM: + case time.TWOHECTOMEGENNIUMS: + case time.FIVEHECTOMEGENNIUMS: + return Math.floor(year/1000000) + "mill"; + } + }; + +SimileAjax.DateTime.getTimeString = function( unit, t ){ + var time = SimileAjax.DateTime; + switch(unit){ + case time.MILLISECOND: + case time.SECOND: + case time.FIVESECONDS: + case time.TENSECONDS: + case time.HALFMINUTE: + case time.MINUTE: + case time.FIVEMINUTES: + case time.TENMINUTES: + case time.HALFHOUR: + case time.HOUR: + case time.TWOHOURS: + case time.FOURHOURS: + case time.EIGHTHOURS: + var m = t.getUTCMonth()+1; + var d = t.getUTCDate(); + var h = t.getUTCHours(); + var min = t.getUTCMinutes(); + var s = t.getUTCSeconds(); + return t.getUTCFullYear()+"-"+((m<10)?"0":"")+m+"-"+((d<10)?"0":"")+d+" "+((h<10)?"0":"")+h+":"+((min<10)?"0":"")+min+":"+((s<10)?"0":"")+s; + case time.DAY: + case time.TWODAYS: + case time.FOURDAYS: + case time.WEEK: + case time.TWOWEEKS: + case time.MONTH: + case time.QUARTER: + case time.SEMESTER: + var m = t.getUTCMonth()+1; + var d = t.getUTCDate(); + return t.getUTCFullYear()+"-"+((m<10)?"0":"")+m+"-"+((d<10)?"0":"")+d; + case time.YEAR: + case time.TWOYEARS: + case time.LUSTRUM: + case time.DECADE: + case time.TWODECADES: + case time.HALFCENTURY: + case time.CENTURY: + case time.TWOCENTURIES: + case time.HALFMILLENNIUM: + case time.MILLENNIUM: + return t.getUTCFullYear(); + case time.TWOMILLENNIUMS: + case time.FIVEMILLENNIUMS: + case time.DECAMILLENNIUM: + case time.TWODECAMILLENNIUMS: + case time.FIVEDECAMILLENNIUMS: + case time.HECTOMILLENNIUM: + case time.TWOHECTOMILLENNIUMS: + case time.FIVEHECTOMILLENNIUMS: + return Math.floor(t.getUTCFullYear() / 1000) + "k"; + case time.MEGENNIUM: + case time.TWOMEGENNIUMS: + case time.FIVEMEGENNIUMS: + case time.DECAMEGENNIUM: + case time.TWODECAMEGENNIUMS: + case time.FIVEDECAMEGENNIUMS: + case time.HECTOMEGENNIUM: + case time.TWOHECTOMEGENNIUMS: + case time.FIVEHECTOMEGENNIUMS: + return Math.floor(t.getUTCFullYear() / 1000000) + "mill"; + } + };