1 /*global $k*/
  2 
  3 /**
  4  * Constructs a FlexTime from the argument(s), which can be a Date object, another FlexTime, undefined, or component values.
  5  * If undefined, all components of the returned FlexTime are undefined
  6  *
  7  * @param value Date or FlexTime 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.FlexTime();
 14  * // Current date
 15  * new $k.FlexTime(new Date());
 16  * // 2007-06-03 21:48
 17  * new $k.FlexTime(2007, 6, 3, 21, 48);
 18  *
 19  *
 20  * @class Represents a flexible date that allowes certain degrees of imprecision.A flextime attribute can restrict the degrees of imprecision.
 21  * FlexTime has the following components, which can be set to an integer or undefined:
 22  * year, month number, day number, hours, minutes.
 23  *
 24 **/
 25 $k.FlexTime = function(valueOrYear, month, day, hours, minutes) { };
 26 
 27 /**
 28  * Returns true if the date is within the range of this flexible date
 29  *
 30  * @function
 31  * @param {date} date
 32  * @returns {boolean}
 33 **/
 34 $k.FlexTime.prototype.coversDate = function(date) { };
 35 
 36 /**
 37  * Returns true if the values are equal
 38  *
 39  * @function
 40  * @returns {boolean}
 41 **/
 42 $k.FlexTime.prototype.equals = function(value) { };
 43 
 44 /**
 45  * Returns the number of the day, e.g. 18 for 2011-03-18
 46  *
 47  * @function
 48  * @returns {number}
 49 **/
 50 $k.FlexTime.prototype.getDayNumber = function() { };
 51 
 52 /**
 53  * Returns the hours
 54  *
 55  * @function
 56  * @returns {number}
 57 **/
 58 $k.FlexTime.prototype.getHours = function() { };
 59 
 60 /**
 61  * Returns the minutes
 62  *
 63  * @function
 64  * @returns {number}
 65 **/
 66 $k.FlexTime.prototype.getMinutes = function() { };
 67 
 68 /**
 69  * Returns the number of the month.
 70  * Unlike Date.prototype.month(), this is not the 0-based month index,
 71  * so for January getMonthNumber() returns 1, not 0
 72  *
 73  * @function
 74  * @returns {number}
 75 **/
 76 $k.FlexTime.prototype.getMonthNumber = function() { };
 77 
 78 /**
 79  * Returns the full year
 80  *
 81  * @function
 82  * @returns {number}
 83 **/
 84 $k.FlexTime.prototype.getYear = function() { };
 85 
 86 /**
 87  * Returns the latest exact date that is within the range of this flexible date, e.g. 2007-03-31 23:59:59 for the flexible date 2007-03
 88  *
 89  * @function
 90  * @returns {Date}
 91 **/
 92 $k.FlexTime.prototype.maxDate = function() { };
 93 
 94 /**
 95  * Returns the oldest exact date that is within the range of this flexible date, e.g. 2007-03-01 0:00:00 for the flexible date 2007-03
 96  *
 97  * @function
 98  * @returns {Date}
 99 **/
100 $k.FlexTime.prototype.minDate = function() { };
101 
102 /**
103  * Sets the number of the day, e.g. 23 for 2012-05-23
104  *
105  * @function
106  * @param {number} day
107 **/
108 $k.FlexTime.prototype.setDayNumber = function(day) { };
109 
110 /**
111  * Sets the hours
112  *
113  * @function
114  * @param {number} hours
115 **/
116 $k.FlexTime.prototype.setHours = function(hours) { };
117 
118 /**
119  * Sets the minutes.
120  *
121  * @function
122  * @param {number} minutes
123 **/
124 $k.FlexTime.prototype.setMinutes = function(minutes) { };
125 
126 /**
127  * Set the number of the month.
128  * Unlike Date.prototype.month(), this is not the 0-based month index,
129  * so for January pass 1 to setMonthNumber() , not 0.
130  *
131  * @function
132  * @param {number} month
133 **/
134 $k.FlexTime.prototype.setMonthNumber = function(month) { };
135 
136 /**
137  * Sets all components of the FlexTime
138  *
139  * @function
140  * @param {number} year
141  * @param {number} month
142  * @param {number} day
143  * @param {number} hours
144  * @param {number} minutes
145 **/
146 $k.FlexTime.prototype.setValues = function(year, month, day, hours, minutes) { };
147 
148 /**
149  * Sets the full year. The year is not modified, so setYear(99) sets the year 99, not 1999.
150  *
151  * @function
152  * @param {number} year
153 **/
154 $k.FlexTime.prototype.setYear = function(year) { };
155 
156 /**
157  * Returns the string representation. Equivalent to valueString()
158  *
159  * @function
160  * @param {string} [language] Language of the value. If not defined, the current language will be used.
161  * Ignored if the attribute is not translated
162  * @returns {string}
163  * @throws {$k.exception.InvalidLanguage} If an invalid language was specified
164 **/
165 $k.FlexTime.prototype.toString = function(language) { };
166 
167 /**
168  * Returns the string representation
169  *
170  * @function
171  * @param {string} [language] Language of the value. If not defined, the current language will be used.
172  * Ignored if the attribute is not translated
173  * @returns {string}
174  * @throws {$k.exception.InvalidLanguage} If an invalid language was specified
175 **/
176 $k.FlexTime.prototype.valueString = function(language) { };
177 
178 /**
179  * Parse the date string.
180  * Use the parse() method of an attribute value range if possible, because it can check the allowed formats
181  *
182  * @function
183  * @param {string} string The string represantation of a FlexTime.
184  * @param {string} [language] Language of the value. If not defined, the current language will be used.
185  * Ignored if the attribute is not translated
186  * @returns {$k.FlexTime} The parsed FlexTime
187  * @throws {$k.exception.InvalidLanguage} If an invalid language was specified
188 **/
189 $k.FlexTime.parse = function(string, language) { };
190 
191