Type.registerNamespace("AjaxControlToolkit"); AjaxControlToolkit.TimeSpan = function(){ if (arguments.length == 0) this._ctor$0.apply(this, arguments); else if (arguments.length == 1) this._ctor$1.apply(this, arguments); else if (arguments.length == 3) this._ctor$2.apply(this, arguments); else if (arguments.length == 4) this._ctor$3.apply(this, arguments); else if (arguments.length == 5) this._ctor$4.apply(this, arguments); else throw Error.parameterCount(); } AjaxControlToolkit.TimeSpan.prototype = { _ctor$0 : function(){ this._ticks = 0;}, _ctor$1 : function(ticks){ this._ctor$0(); this._ticks = ticks; }, _ctor$2 : function(hours, minutes, seconds){ this._ctor$0(); this._ticks = (hours * AjaxControlToolkit.TimeSpan.TicksPerHour) + (minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (seconds * AjaxControlToolkit.TimeSpan.TicksPerSecond); }, _ctor$3 : function(days, hours, minutes, seconds){ this._ctor$0(); this._ticks = (days * AjaxControlToolkit.TimeSpan.TicksPerDay) + (hours * AjaxControlToolkit.TimeSpan.TicksPerHour) + (minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (seconds * AjaxControlToolkit.TimeSpan.TicksPerSecond); }, _ctor$4 : function(days, hours, minutes, seconds, milliseconds){ this._ctor$0(); this._ticks = (days * AjaxControlToolkit.TimeSpan.TicksPerDay) + (hours * AjaxControlToolkit.TimeSpan.TicksPerHour) + (minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (seconds * AjaxControlToolkit.TimeSpan.TicksPerSecond) + (milliseconds * AjaxControlToolkit.TimeSpan.TicksPerMillisecond); }, getDays : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerDay); }, getHours : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerHour) % 24; }, getMinutes : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerMinute) % 60; }, getSeconds : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerSecond) % 60; }, getMilliseconds : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerMillisecond) % 1000; }, getDuration : function(){ return new AjaxControlToolkit.TimeSpan(Math.abs(this._ticks)); }, getTicks : function(){ return this._ticks; }, getTotalDays : function(){ Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerDay); }, getTotalHours : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerHour); }, getTotalMinutes : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerMinute); }, getTotalSeconds : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerSecond); }, getTotalMilliseconds : function(){ return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerMillisecond); }, add : function(value){ return new AjaxControlToolkit.TimeSpan(this._ticks + value.getTicks()); }, subtract : function(value){ return new AjaxControlToolkit.TimeSpan(this._ticks - value.getTicks()); }, negate : function(){ return new AjaxControlToolkit.TimeSpan(-this._ticks); }, equals : function(value){ return this._ticks == value.getTicks(); }, compareTo : function(value){ if(this._ticks > value.getTicks()) return 1; else if(this._ticks < value.getTicks()) return -1; else return 0; }, toString : function(){ return this.format("F"); }, format : function(format){ if (!format){ format = "F"; } if (format.length == 1){ switch (format){ case "t": format = AjaxControlToolkit.TimeSpan.ShortTimeSpanPattern; break; case "T": format = AjaxControlToolkit.TimeSpan.LongTimeSpanPattern; break; case "F": format = AjaxControlToolkit.TimeSpan.FullTimeSpanPattern; break; default: throw Error.createError(String.format(AjaxControlToolkit.Resources.Common_DateTime_InvalidTimeSpan, format)); } } var regex = /dd|d|hh|h|mm|m|ss|s|nnnn|nnn|nn|n/g; var builder = new Sys.StringBuilder(); var ticks = this._ticks; if (ticks < 0){ builder.append("-"); ticks = -ticks; } for (;;){ var index = regex.lastIndex; var ar = regex.exec(format); builder.append(format.slice(index, ar ? ar.index : format.length)); if (!ar) break; switch (ar[0]){ case "dd": case "d": builder.append(AjaxControlToolkit.CommonToolkitScripts.padLeft(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerDay, ar[0].length, '0'))); break; case "hh": case "h": builder.append(AjaxControlToolkit.CommonToolkitScripts.padLeft(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerHour) % 24, ar[0].length, '0')); break; case "mm": case "m": builder.append(AjaxControlToolkit.CommonToolkitScripts.padLeft(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerMinute) % 60, ar[0].length, '0')); break; case "ss": case "s": builder.append(AjaxControlToolkit.CommonToolkitScripts.padLeft(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerSecond) % 60, ar[0].length, '0')); break; case "nnnn": case "nnn": case "nn": case "n": builder.append(AjaxControlToolkit.CommonToolkitScripts.padRight(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerMillisecond) % 1000, ar[0].length, '0', true)); break; default: Sys.Debug.assert(false); } } return builder.toString(); } } AjaxControlToolkit.TimeSpan.parse = function(text){ var parts = text.split(":"); var d = 0; var h = 0; var m = 0; var s = 0; var n = 0; var ticks = 0; switch(parts.length){ case 1: if (parts[0].indexOf(".") != -1){ var parts2 = parts[0].split("."); s = parseInt(parts2[0]); n = parseInt(parts2[1]); } else { ticks = parseInt(parts[0]); } break; case 2: h = parseInt(parts[0]); m = parseInt(parts[1]); break; case 3: h = parseInt(parts[0]); m = parseInt(parts[1]); if (parts[2].indexOf(".") != -1){ var parts2 = parts[2].split("."); s = parseInt(parts2[0]); n = parseInt(parts2[1]); } else { s = parseInt(parts[2]); } break; case 4: d = parseInt(parts[0]); h = parseInt(parts[1]); m = parseInt(parts[2]); if (parts[3].indexOf(".") != -1){ var parts2 = parts[3].split("."); s = parseInt(parts2[0]); n = parseInt(parts2[1]); } else { s = parseInt(parts[3]); } break; } ticks += (d * AjaxControlToolkit.TimeSpan.TicksPerDay) + (h * AjaxControlToolkit.TimeSpan.TicksPerHour) + (m * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (s * AjaxControlToolkit.TimeSpan.TicksPerSecond) + (n * AjaxControlToolkit.TimeSpan.TicksPerMillisecond); if(!isNaN(ticks)){ return new AjaxControlToolkit.TimeSpan(ticks); } throw Error.create(AjaxControlToolkit.Resources.Common_DateTime_InvalidFormat); } AjaxControlToolkit.TimeSpan.fromTicks = function(ticks){ return new AjaxControlToolkit.TimeSpan(ticks); } AjaxControlToolkit.TimeSpan.fromDays = function(days){ return new AjaxControlToolkit.TimeSpan(days * AjaxControlToolkit.TimeSpan.TicksPerDay); } AjaxControlToolkit.TimeSpan.fromHours = function(hours){ return new AjaxControlToolkit.TimeSpan(hours * AjaxControlToolkit.TimeSpan.TicksPerHour); } AjaxControlToolkit.TimeSpan.fromMinutes = function(minutes){ return new AjaxControlToolkit.TimeSpan(minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute); } AjaxControlToolkit.TimeSpan.fromSeconds = function(seconds){ return new AjaxControlToolkit.TimeSpan(minutes * AjaxControlToolkit.TimeSpan.TicksPerSecond); } AjaxControlToolkit.TimeSpan.fromMilliseconds = function(milliseconds){ return new AjaxControlToolkit.TimeSpan(minutes * AjaxControlToolkit.TimeSpan.TicksPerMillisecond); } AjaxControlToolkit.TimeSpan.TicksPerDay = 864000000000; AjaxControlToolkit.TimeSpan.TicksPerHour = 36000000000; AjaxControlToolkit.TimeSpan.TicksPerMinute = 600000000; AjaxControlToolkit.TimeSpan.TicksPerSecond = 10000000; AjaxControlToolkit.TimeSpan.TicksPerMillisecond = 10000; AjaxControlToolkit.TimeSpan.FullTimeSpanPattern = "dd:hh:mm:ss.nnnn"; AjaxControlToolkit.TimeSpan.ShortTimeSpanPattern = "hh:mm"; AjaxControlToolkit.TimeSpan.LongTimeSpanPattern = "hh:mm:ss"; Date.prototype.getTimeOfDay = function Date$getTimeOfDay(){ return new AjaxControlToolkit.TimeSpan( 0, this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds()); } Date.prototype.getDateOnly = function Date$getDateOnly(){ return new Date(this.getFullYear(), this.getMonth(), this.getDate()); } Date.prototype.add = function Date$add(span){ return new Date(this.getTime() + span.getTotalMilliseconds()); } Date.prototype.subtract = function Date$subtract(span){ return this.add(span.negate());} Date.prototype.getTicks = function Date$getTicks(){ return this.getTime() * AjaxControlToolkit.TimeSpan.TicksPerMillisecond;} AjaxControlToolkit.FirstDayOfWeek = function(){} AjaxControlToolkit.FirstDayOfWeek.prototype = {Sunday : 0, Monday : 1, Tuesday : 2, Wednesday : 3, Thursday : 4, Friday : 5, Saturday : 6, Default : 7} AjaxControlToolkit.FirstDayOfWeek.registerEnum("AjaxControlToolkit.FirstDayOfWeek"); if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();