// Name: AjaxControlToolkit.Common.DateTime.debug.js // Assembly: AjaxControlToolkit // Version: 3.0.30930.28736 // FileVersion: 3.0.30930.0 // (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Public License. // See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL. // All other rights reserved. /// /// /// /// Type.registerNamespace("AjaxControlToolkit"); AjaxControlToolkit.TimeSpan = function() { /// /// Represents a period of time /// 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() { /// /// Initializes a new TimeSpan /// this._ticks = 0; }, _ctor$1 : function(ticks) { /// /// Initializes a new TimeSpan /// /// The number of ticks in the TimeSpan this._ctor$0(); this._ticks = ticks; }, _ctor$2 : function(hours, minutes, seconds) { /// /// Initializes a new TimeSpan /// /// The number of hours in the TimeSpan /// The number of minutes in the TimeSpan /// The number of seconds in the TimeSpan this._ctor$0(); this._ticks = (hours * AjaxControlToolkit.TimeSpan.TicksPerHour) + (minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (seconds * AjaxControlToolkit.TimeSpan.TicksPerSecond); }, _ctor$3 : function(days, hours, minutes, seconds) { /// /// Initializes a new TimeSpan /// /// The number of days in the TimeSpan /// The number of hours in the TimeSpan /// The number of minutes in the TimeSpan /// The number of seconds in the TimeSpan 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) { /// /// Initializes a new TimeSpan /// /// The number of days in the TimeSpan /// The number of hours in the TimeSpan /// The number of minutes in the TimeSpan /// The number of seconds in the TimeSpan /// The number of milliseconds in the TimeSpan 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() { /// /// Gets the days part of the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerDay); }, getHours : function() { /// /// Gets the hours part of the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerHour) % 24; }, getMinutes : function() { /// /// Gets the minutes part of the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerMinute) % 60; }, getSeconds : function() { /// /// Gets the seconds part of the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerSecond) % 60; }, getMilliseconds : function() { /// /// Gets the milliseconds part of the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerMillisecond) % 1000; }, getDuration : function() { /// /// Gets the total duration of a TimeSpan /// /// return new AjaxControlToolkit.TimeSpan(Math.abs(this._ticks)); }, getTicks : function() { /// /// Gets the ticks in the TimeSpan /// /// return this._ticks; }, getTotalDays : function() { /// /// Gets the total number of days in the TimeSpan /// /// Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerDay); }, getTotalHours : function() { /// /// Gets the total hours in the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerHour); }, getTotalMinutes : function() { /// /// Gets the total minutes in the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerMinute); }, getTotalSeconds : function() { /// /// Gets the total seconds in the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerSecond); }, getTotalMilliseconds : function() { /// /// Gets the total milliseconds in the TimeSpan /// /// return Math.floor(this._ticks / AjaxControlToolkit.TimeSpan.TicksPerMillisecond); }, add : function(value) { /// /// Adds the supplied TimeSpan to this TimeSpan /// /// The TimeSpan to add /// return new AjaxControlToolkit.TimeSpan(this._ticks + value.getTicks()); }, subtract : function(value) { /// /// Subtracts the supplied TimeSpan to this TimeSpan /// /// The TimeSpan to subtract /// return new AjaxControlToolkit.TimeSpan(this._ticks - value.getTicks()); }, negate : function() { /// /// Negates the TimeSpan /// /// return new AjaxControlToolkit.TimeSpan(-this._ticks); }, equals : function(value) { /// /// Whether this TimeSpan equals another TimeSpan /// /// The TimeSpan to test /// return this._ticks == value.getTicks(); }, compareTo : function(value) { /// /// Whether this TimeSpan greater or less than another TimeSpan /// /// The TimeSpan to test /// if(this._ticks > value.getTicks()) return 1; else if(this._ticks < value.getTicks()) return -1; else return 0; }, toString : function() { /// /// Gets the string representation of the TimeSpan /// /// return this.format("F"); }, format : function(format) { /// /// Gets the string representation of the TimeSpan /// /// The format specifier used to format the TimeSpan /// 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($common.padLeft(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerDay, ar[0].length, '0'))); break; case "hh": case "h": builder.append($common.padLeft(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerHour) % 24, ar[0].length, '0')); break; case "mm": case "m": builder.append($common.padLeft(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerMinute) % 60, ar[0].length, '0')); break; case "ss": case "s": builder.append($common.padLeft(Math.floor(ticks / AjaxControlToolkit.TimeSpan.TicksPerSecond) % 60, ar[0].length, '0')); break; case "nnnn": case "nnn": case "nn": case "n": builder.append($common.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) { /// /// Parses a text value into a TimeSpan /// /// The text to parse /// 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) { /// /// Creates a TimeSpan for the specified number of ticks /// /// The ticks for the TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(ticks); } AjaxControlToolkit.TimeSpan.fromDays = function(days) { /// /// Creates a TimeSpan for the specified number of days /// /// The days for the TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(days * AjaxControlToolkit.TimeSpan.TicksPerDay); } AjaxControlToolkit.TimeSpan.fromHours = function(hours) { /// /// Creates a TimeSpan for the specified number of hours /// /// The hours for the TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(hours * AjaxControlToolkit.TimeSpan.TicksPerHour); } AjaxControlToolkit.TimeSpan.fromMinutes = function(minutes) { /// /// Creates a TimeSpan for the specified number of minutes /// /// The minutes for the TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute); } AjaxControlToolkit.TimeSpan.fromSeconds = function(seconds) { /// /// Creates a TimeSpan for the specified number of seconds /// /// The seconds for the TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(minutes * AjaxControlToolkit.TimeSpan.TicksPerSecond); } AjaxControlToolkit.TimeSpan.fromMilliseconds = function(milliseconds) { /// /// Creates a TimeSpan for the specified number of milliseconds /// /// The milliseconds for the TimeSpan instance /// 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() { /// /// Gets a TimeSpan representing the current time of the Date /// /// return new AjaxControlToolkit.TimeSpan( 0, this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds()); } Date.prototype.getDateOnly = function Date$getDateOnly() { /// /// Gets a Date representing the Date only part of the Date /// /// return new Date(this.getFullYear(), this.getMonth(), this.getDate()); } Date.prototype.add = function Date$add(span) { /// /// Adds a TimeSpan to the current Date /// /// The amount of time to add to the date /// return new Date(this.getTime() + span.getTotalMilliseconds()); } Date.prototype.subtract = function Date$subtract(span) { /// /// Subtracts a TimeSpan to the current Date /// /// The amount of time to subtract from the date /// return this.add(span.negate()); } Date.prototype.getTicks = function Date$getTicks() { /// /// Gets the number of ticks in the date /// /// return this.getTime() * AjaxControlToolkit.TimeSpan.TicksPerMillisecond; } AjaxControlToolkit.FirstDayOfWeek = function() { /// /// Represents the first day of the week in a calendar /// } 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();