1 /*global $k*/
  2 
  3 /**
  4  * Constructs a FlexDateTime from the argument(s), which can be a Date object, another FlexDateTime, undefined, or component values.
  5  * If undefined, all components of the returned FlexDateTime are undefined
  6  *
  7  * @param [value] Date or FlexDateTime or year component
  8  * @param [month] Month number
  9  * @param [day] Day number
 10  * @param [hours] Hours
 11  * @param [minutes] Minutes
 12  * @example // All components are undefined
 13  * new $k.FlexDateTime();
 14  * // Current date
 15  * new $k.FlexDateTime(new Date());
 16  * // 2007-06-03 21:48
 17  * new $k.FlexDateTime(2007, 6, 3, 21, 48);
 18  *
 19  *
 20  * @class Represents a flexible date/time without timezone that allowes certain degrees of imprecision.
 21  * FlexDateTime has the following components, which can be set to an integer or undefined:
 22  * year, month number, day number, hours, minutes.
 23  * Note that a FlexDateTime has no seconds.
 24  *
 25 **/
 26 $k.FlexDateTime = function(varargs) { };
 27 
 28 /**
 29  * Returns true if the date is within the range of this flexible date
 30  *
 31  * @function
 32  * @param {date} date
 33  * @returns {boolean}
 34 **/
 35 $k.FlexDateTime.prototype.coversDate = function(date) { };
 36 
 37 /**
 38  * Returns true if the values are equal
 39  *
 40  * @function
 41  * @returns {boolean}
 42 **/
 43 $k.FlexDateTime.prototype.equals = function(value) { };
 44 
 45 /**
 46  * Returns the number of the day, e.g. 18 for 2011-03-18
 47  *
 48  * @function
 49  * @returns {number}
 50 **/
 51 $k.FlexDateTime.prototype.getDayNumber = function() { };
 52 
 53 /**
 54  * Returns the hours
 55  *
 56  * @function
 57  * @returns {number}
 58 **/
 59 $k.FlexDateTime.prototype.getHours = function() { };
 60 
 61 /**
 62  * Returns the minutes
 63  *
 64  * @function
 65  * @returns {number}
 66 **/
 67 $k.FlexDateTime.prototype.getMinutes = function() { };
 68 
 69 /**
 70  * Returns the number of the month.
 71  * Unlike Date.prototype.month(), this is not the 0-based month index,
 72  * so for January getMonthNumber() returns 1, not 0
 73  *
 74  * @function
 75  * @returns {number}
 76 **/
 77 $k.FlexDateTime.prototype.getMonthNumber = function() { };
 78 
 79 /**
 80  * Returns the full year
 81  *
 82  * @function
 83  * @returns {number}
 84 **/
 85 $k.FlexDateTime.prototype.getYear = function() { };
 86 
 87 /**
 88  * Returns the latest exact Javascript date that is within the range of this date/time, e.g. 2007-03-01T23:59:59.999 for the date 2007-03-01.
 89  * Assumes that this is date/time of the local timezone
 90  *
 91  * @function
 92  * @returns {$k.Date}
 93 **/
 94 $k.FlexDateTime.prototype.maxDate = function() { };
 95 
 96 /**
 97  * Returns the latest exact Javascript date that is within the range of this date/time, e.g. 2007-03-01T23:59:59.999 for the date 2007-03-01.
 98  * Assumes that this is date/time of the local timezone
 99  *
100  * @function
101  * @returns {$k.Date}
102 **/
103 $k.FlexDateTime.prototype.maxUTCDate = function() { };
104 
105 /**
106  * Returns the earliest exact Javascript date that is within the range of this date/time, e.g. 2007-03-01T0:00:00.0 for the date 2007-03-01.
107  * Assumes that this is date/time of the local timezone
108  *
109  * @function
110  * @returns {$k.Date}
111 **/
112 $k.FlexDateTime.prototype.minDate = function() { };
113 
114 /**
115  * Returns the earliest exact Javascript date that is within the range of this date/time, e.g. 2007-03-01T0:00:00.0 for the date 2007-03-01.
116  * Assumes that this is an UTC date/time
117  *
118  * @function
119  * @returns {$k.Date}
120 **/
121 $k.FlexDateTime.prototype.minUTCDate = function() { };
122 
123 /**
124  * Sets the number of the day, e.g. 23 for 2012-05-23
125  *
126  * @function
127  * @param {number} day
128 **/
129 $k.FlexDateTime.prototype.setDayNumber = function(day) { };
130 
131 /**
132  * Sets the hours
133  *
134  * @function
135  * @param {number} hours
136 **/
137 $k.FlexDateTime.prototype.setHours = function(hours) { };
138 
139 /**
140  * Sets the minutes.
141  *
142  * @function
143  * @param {number} minutes
144 **/
145 $k.FlexDateTime.prototype.setMinutes = function(minutes) { };
146 
147 /**
148  * Set the number of the month.
149  * Unlike Date.prototype.month(), this is not the 0-based month index,
150  * so for January pass 1 to setMonthNumber() , not 0.
151  *
152  * @function
153  * @param {number} month
154 **/
155 $k.FlexDateTime.prototype.setMonthNumber = function(month) { };
156 
157 /**
158  * Sets all components of the FlexDateTime
159  *
160  * @function
161  * @param {number} year
162  * @param {number} month
163  * @param {number} day
164  * @param {number} hours
165  * @param {number} minutes
166 **/
167 $k.FlexDateTime.prototype.setValues = function(year, month, day, hours, minutes) { };
168 
169 /**
170  * Sets the full year. The year is not modified, so setYear(99) sets the year 99, not 1999.
171  *
172  * @function
173  * @param {number} year
174 **/
175 $k.FlexDateTime.prototype.setYear = function(year) { };
176 
177 /**
178  * Returns the date/time as a Javascript date object.
179  * Assumes that this is date/time of the local timezone
180  *
181  * @function
182 **/
183 $k.FlexDateTime.prototype.toDate = function() { };
184 
185 /**
186  * Returns a string representing the date/time, similar to Date.prototype.toJSON ( key )
187  *
188  * @function
189  * @see $k.Date#toJSON
190 **/
191 $k.FlexDateTime.prototype.toJSON = function(key) { };
192 
193 /**
194  * Returns the string representation. Equivalent to valueString()
195  *
196  * @function
197  * @param {string} [language] Language of the value. If not defined, the current language will be used.
198  * Ignored if the attribute is not translated
199  * @returns {string}
200  * @throws {$k.exception.InvalidLanguage} If an invalid language was specified
201 **/
202 $k.FlexDateTime.prototype.toString = function(language) { };
203 
204 /**
205  * Returns the date/time as a Javascript date object.
206  * Assumes that this is an UTC date/time
207  *
208  * @function
209 **/
210 $k.FlexDateTime.prototype.toUTCDate = function() { };
211 
212 /**
213  * Returns the string representation
214  *
215  * @function
216  * @param {string} [language] Language of the value. If not defined, the current language will be used.
217  * Ignored if the attribute is not translated
218  * @returns {string}
219  * @throws {$k.exception.InvalidLanguage} If an invalid language was specified
220 **/
221 $k.FlexDateTime.prototype.valueString = function(language) { };
222 
223 /**
224  * Parse the date/time string. Both ISO 8601 adnd localized strings are supported.
225  *
226  * @function
227  * @param {string} string The string representation
228  * @param {string} [language] Language of the value. If not defined, the current language will be used.
229  * Ignored if the attribute is not translated
230  * @returns The parsed date/time
231  * @throws {$k.exception.InvalidLanguage} If an invalid language was specified
232 **/
233 $k.FlexDateTime.parse = function(string, language) { };
234 
235