0001 
0002 /*
0003  *  JScripter Standard 1.0 - To Script In Java
0004  *  Copyright (C) 2008-2011  J.J.Liu<jianjunliu@126.com> <http://www.jscripter.org>
0005  *  
0006  *  This program is free software: you can redistribute it and/or modify
0007  *  it under the terms of the GNU Affero General Public License as published by
0008  *  the Free Software Foundation, either version 3 of the License, or
0009  *  (at your option) any later version.
0010  *  
0011  *  This program is distributed in the hope that it will be useful,
0012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014  *  GNU Affero General Public License for more details.
0015  *  
0016  *  You should have received a copy of the GNU Affero General Public License
0017  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
0018  */
0019 
0020 package js;
0021 
0022 import js.core.JsDate;
0023 
0024 /**
0025  * <p>An <b>opaque</b> interface resembling JavaScript built-in Date objects for 
0026  * manipulating dates and times.</p>
0027  * <p>This interface must be implemented in JS Simulation Libraries.</p>
0028  *
0029  * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0030  * @see Js#date()
0031  * @see Js#date(Number)
0032  * @see Js#date(String)
0033  * @see js.core.JsDate#JsDate(js.core.JsObject)
0034  * @see js.core.JsDate#JsDate(Number)
0035  * @see js.core.JsDate#JsDate(NumberLike)
0036  * @see js.core.JsDate#JsDate(String)
0037  * @see js.core.JsDate#JsDate(StringLike)
0038  * @see js.core.JsDate#JsDate(Object, Object)
0039  * @see js.core.JsDate#JsDate(Object, Object, Object)
0040  * @see js.core.JsDate#JsDate(Object, Object, Object, Object)
0041  * @see js.core.JsDate#JsDate(Object, Object, Object, Object, Object)
0042  * @see js.core.JsDate#JsDate(Object, Object, Object, Object, Object, Object)
0043  * @see js.core.JsDate#JsDate(Object, Object, Object, Object, Object, Object, Object)
0044  * @see js.core.JsGlobal.Date#create()
0045  * @see js.core.JsGlobal.Date#create(Vars)
0046  * @see js.core.JsGlobal.Date#create(Number)
0047  * @see js.core.JsGlobal.Date#create(NumberLike)
0048  * @see js.core.JsGlobal.Date#create(Object)
0049  * @see js.core.JsGlobal.Date#create(Object, Object)
0050  * @see js.core.JsGlobal.Date#create(Object, Object, Object)
0051  * @see js.core.JsGlobal.Date#create(Object, Object, Object, Object)
0052  * @see js.core.JsGlobal.Date#create(Object, Object, Object, Object, Object)
0053  * @see js.core.JsGlobal.Date#create(Object, Object, Object, Object, Object, Object)
0054  * @see js.core.JsGlobal.Date#create(Object, Object, Object, Object, Object, Object, Object)
0055  * @see jsx.core.DateLikes
0056  * 
0057  * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be 
0058  * generated into the target codes. Re-compilers must exit with error on the operations of 
0059  * accessing that kind of class objects.
0060  * The <tt>checkcast</tt> operation to the class literal of this interface must be ignored 
0061  * and <tt>instanceof</tt> to it always <tt>true</tt>.
0062  */
0063 
0064 public interface DateLike
0065 {
0066     /**
0067      * <p>Returns the internal, millisecond representation of the current date instance.</p>
0068      * <p>It converts the current date instance to a single integer. This is useful when 
0069      * you want to compare two date instances or to determine the time elapsed between two 
0070      * dates. Note that the millisecond representation of a date is independent of the 
0071      * time zone, so there is no <tt>getUTCTime()</tt> method in addition to this one. 
0072      * Don't confuse this method with the {@link #getDay()} and {@link #getDate()} methods, 
0073      * which return the day of the week and the day of the month, respectively</p>
0074      * <p>{@link js.core.JsGlobal.Date#parse(Object)} and {@link js.core.JsGlobal.Date#UTC(Object, Object)} 
0075      * allow you to convert a date and time specification to a millisecond representation without 
0076      * going through the overhead of first creating a date object.</p>
0077      * @return The millisecond representation of the current date instance, that is, the 
0078      * number of milliseconds between midnight (GMT) on 1/1/1970 and the date and time 
0079      * specified by the date.
0080      * @see #setTime(Object)
0081      * @see js.core.JsGlobal.Date#parse(Object)
0082      * @see js.core.JsGlobal.Date#UTC(Object, Object)
0083      * @see js.core.JsGlobal.Date#UTC(Object, Object, Object)
0084      * @see js.core.JsGlobal.Date#UTC(Object, Object, Object, Object)
0085      * @see js.core.JsGlobal.Date#UTC(Object, Object, Object, Object, Object)
0086      * @see js.core.JsGlobal.Date#UTC(Object, Object, Object, Object, Object, Object)
0087      * @see js.core.JsGlobal.Date#UTC(Object, Object, Object, Object, Object, Object, Object)
0088      * @see jsx.core.DateLikes#getTime(DateLike)
0089      * @since 1.0
0090      * @javascript Re-compilers must convert the interface invocation of this method directly 
0091      * into a JavaScript invocation on its current date instance without changing the 
0092      * method name, but expanding variable arguments, if any, into comma-separated values. 
0093      */
0094     public Number getTime();
0095     /**
0096      * <p>Returns the year of the current date instance in full four-digit form, in local 
0097      * time.</p>
0098      * @return The year that results when the current date instance is expressed in local 
0099      * time. The return value is a full four-digit year, including the century, not a 
0100      * two-digit abbreviation..
0101      * @see #getUTCFullYear()
0102      * @see jsx.core.DateLikes#getFullYear(DateLike)
0103      * @since 1.0
0104      * @javascript Re-compilers must convert the interface invocation of this method directly 
0105      * into a JavaScript invocation on its current date instance without changing the 
0106      * method name, but expanding variable arguments, if any, into comma-separated values. 
0107      */
0108     public Number getFullYear();
0109     /**
0110      * <p>Returns the year of the current date instance in full four-digit form, in 
0111      * universal time.</p>
0112      * @return The year that results when the current date instance is expressed in 
0113      * universal time. The return value is a full four-digit year, not a two-digit 
0114      * abbreviation.
0115      * @see #getFullYear()
0116      * @see jsx.core.DateLikes#getUTCFullYear(DateLike)
0117      * @since 1.0
0118      * @javascript Re-compilers must convert the interface invocation of this method directly 
0119      * into a JavaScript invocation on its current date instance without changing the 
0120      * method name, but expanding variable arguments, if any, into comma-separated values. 
0121      */
0122     public Number getUTCFullYear();
0123     /**
0124      * <p>Returns the month field of the current date instance, in local time.</p>
0125      * @return The month of the year that results when the current date instance is 
0126      * expressed in local time. The return value is an integer between 0 (January) 
0127      * and 11 (December). Note that the date represents the first day of the month as 1 
0128      * but represents the first month of the year as 0.
0129      * @see #getUTCMonth()
0130      * @see jsx.core.DateLikes#getMonth(DateLike)
0131      * @since 1.0
0132      * @javascript Re-compilers must convert the interface invocation of this method directly 
0133      * into a JavaScript invocation on its current date instance without changing the 
0134      * method name, but expanding variable arguments, if any, into comma-separated values. 
0135      */
0136     public Number getMonth();
0137     /**
0138      * <p>Returns the month field of the current date instance, in universal time.</p>
0139      * @return The month of the year that results when the current date instance is 
0140      * expressed in universal time. The return value is an integer between 0 (January) 
0141      * and 11 (December). Note that the date represents the first day of the month as 1 
0142      * but represents the first month of the year as 0.
0143      * @see #getMonth()
0144      * @see jsx.core.DateLikes#getUTCMonth(DateLike)
0145      * @since 1.0
0146      * @javascript Re-compilers must convert the interface invocation of this method directly 
0147      * into a JavaScript invocation on its current date instance without changing the 
0148      * method name, but expanding variable arguments, if any, into comma-separated values. 
0149      */
0150     public Number getUTCMonth();
0151     /**
0152      * <p>Returns the day of the month of the current date instance, in local time.</p>
0153      * @return The day of the month of the current date instance, using local time. 
0154      * Return values are between 1 and 31.
0155      * @see #getUTCDate()
0156      * @see jsx.core.DateLikes#getDate(DateLike)
0157      * @since 1.0
0158      * @javascript Re-compilers must convert the interface invocation of this method directly 
0159      * into a JavaScript invocation on its current date instance without changing the 
0160      * method name, but expanding variable arguments, if any, into comma-separated values. 
0161      */
0162     public Number getDate();
0163     /**
0164      * <p>Returns the day of the month of the current date instance, in universal time.</p>
0165      * @return The day of the month (a value between 1 and 31) that results when the 
0166      * current date instance is expressed in universal time.
0167      * @see #getDate()
0168      * @see jsx.core.DateLikes#getUTCDate(DateLike)
0169      * @since 1.0
0170      * @javascript Re-compilers must convert the interface invocation of this method directly 
0171      * into a JavaScript invocation on its current date instance without changing the 
0172      * method name, but expanding variable arguments, if any, into comma-separated values. 
0173      */
0174     public Number getUTCDate();
0175     /**
0176      * <p>Returns the day of the week of the current date instance, in local time.</p>
0177      * @return The day of the week of the current date instance, using local time. Return values 
0178      * are between 0 (Sunday) and 6 (Saturday).
0179      * @see #getUTCDay()
0180      * @see jsx.core.DateLikes#getDay(DateLike)
0181      * @since 1.0
0182      * @javascript Re-compilers must convert the interface invocation of this method directly 
0183      * into a JavaScript invocation on its current date instance without changing the 
0184      * method name, but expanding variable arguments, if any, into comma-separated values. 
0185      */
0186     public Number getDay();
0187     /**
0188      * <p>Returns the day of the week of current date instance, in universal time.</p>
0189      * @return The day of the week that results when the current date instance is expressed 
0190      * in universal time. Return values are between 0 (Sunday) and 6 (Saturday).
0191      * @see #getDay()
0192      * @see jsx.core.DateLikes#getUTCDay(DateLike)
0193      * @since 1.0
0194      * @javascript Re-compilers must convert the interface invocation of this method directly 
0195      * into a JavaScript invocation on its current date instance without changing the 
0196      * method name, but expanding variable arguments, if any, into comma-separated values. 
0197      */
0198     public Number getUTCDay();
0199     /**
0200      * <p>Returns the hours field of the current date instance, in local time.</p>
0201      * @return The hours field, expressed in local time, of the current date instance. 
0202      * Return values are between 0 (midnight) and 23 (11 p.m.).
0203      * @see #getUTCHours()
0204      * @see jsx.core.DateLikes#getHours(DateLike)
0205      * @since 1.0
0206      * @javascript Re-compilers must convert the interface invocation of this method directly 
0207      * into a JavaScript invocation on its current date instance without changing the 
0208      * method name, but expanding variable arguments, if any, into comma-separated values. 
0209      */
0210     public Number getHours();
0211     /**
0212      * <p>Returns the hours field of the current date instance, in universal time.</p>
0213      * @return The hours field, expressed in universal time, of the current date instance. 
0214      * The return value is an integer between 0 (midnight) and 23 (11 p.m.).
0215      * @see #getHours()
0216      * @see jsx.core.DateLikes#getUTCHours(DateLike)
0217      * @since 1.0
0218      * @javascript Re-compilers must convert the interface invocation of this method directly 
0219      * into a JavaScript invocation on its current date instance without changing the 
0220      * method name, but expanding variable arguments, if any, into comma-separated values. 
0221      */
0222     public Number getUTCHours();
0223     /**
0224      * <p>Returns the minutes field of a Date object, in local or universal time.</p>
0225      * @return The minutes field, expressed in local time, of the current date instance. 
0226      * Return values are between 0 and 59.
0227      * @see #getUTCMinutes()
0228      * @see jsx.core.DateLikes#getMinutes(DateLike)
0229      * @since 1.0
0230      * @javascript Re-compilers must convert the interface invocation of this method directly 
0231      * into a JavaScript invocation on its current date instance without changing the 
0232      * method name, but expanding variable arguments, if any, into comma-separated values. 
0233      */
0234     public Number getMinutes();
0235     /**
0236      * <p>Returns the minutes field of the current date instance, in universal time.</p>
0237      * @return The minutes field, expressed in universal time, of the current date instance. 
0238      * The return value is an integer between 0 and 59.
0239      * @see #getMinutes()
0240      * @see jsx.core.DateLikes#getUTCMinutes(DateLike)
0241      * @since 1.0
0242      * @javascript Re-compilers must convert the interface invocation of this method directly 
0243      * into a JavaScript invocation on its current date instance without changing the 
0244      * method name, but expanding variable arguments, if any, into comma-separated values. 
0245      */
0246     public Number getUTCMinutes();
0247     /**
0248      * <p>Returns the seconds field of the current date instance, in local time.</p>
0249      * @return The seconds field, expressed in local time, of the current date instance. 
0250      * Return values are between 0 and 59.
0251      * @see #getUTCSeconds()
0252      * @see jsx.core.DateLikes#getSeconds(DateLike)
0253      * @since 1.0
0254      * @javascript Re-compilers must convert the interface invocation of this method directly 
0255      * into a JavaScript invocation on its current date instance without changing the 
0256      * method name, but expanding variable arguments, if any, into comma-separated values. 
0257      */
0258     public Number getSeconds();
0259     /**
0260      * <p>Returns the seconds field of the current date instance, in universal time.</p>
0261      * @return The seconds field, expressed in universal time, of the current date instance. 
0262      * The return value is an integer between 0 and 59.
0263      * @see #getSeconds()
0264      * @see jsx.core.DateLikes#getUTCSeconds(DateLike)
0265      * @since 1.0
0266      * @javascript Re-compilers must convert the interface invocation of this method directly 
0267      * into a JavaScript invocation on its current date instance without changing the 
0268      * method name, but expanding variable arguments, if any, into comma-separated values. 
0269      */
0270     public Number getUTCSeconds();
0271     /**
0272      * <p>Returns the milliseconds field of the current date instance, in local time.</p>
0273      * @return The milliseconds field, expressed in local time, of the current date instance.
0274      * @see #getUTCMilliseconds()
0275      * @see jsx.core.DateLikes#getMilliseconds(DateLike)
0276      * @since 1.0
0277      * @javascript Re-compilers must convert the interface invocation of this method directly 
0278      * into a JavaScript invocation on its current date instance without changing the 
0279      * method name, but expanding variable arguments, if any, into comma-separated values. 
0280      */
0281     public Number getMilliseconds();
0282     /**
0283      * <p>Returns the milliseconds field of current date instance, in universal time.</p>
0284      * @return The milliseconds field, expressed in universal time, of the current date instance.
0285      * @see #getMilliseconds()
0286      * @see jsx.core.DateLikes#getUTCMilliseconds(DateLike)
0287      * @since 1.0
0288      * @javascript Re-compilers must convert the interface invocation of this method directly 
0289      * into a JavaScript invocation on its current date instance without changing the 
0290      * method name, but expanding variable arguments, if any, into comma-separated values. 
0291      */
0292     public Number getUTCMilliseconds();
0293     /**
0294      * <p>Returns the difference, in minutes, between the local and UTC representations of 
0295      * the current date instance. Note that the value returned depends on whether daylight 
0296      * saving time is or would be in effect at the specific date.</p>
0297      * <p>The return value is measured in minutes, rather than hours, because some 
0298      * countries have time zones that are not at even one-hour intervals.</p>
0299      * @return The difference, in minutes, between GMT and local time.
0300      * @see jsx.core.DateLikes#getTimezoneOffset(DateLike)
0301      * @since 1.0
0302      * @javascript Re-compilers must convert the interface invocation of this method directly 
0303      * into a JavaScript invocation on its current date instance without changing the 
0304      * method name, but expanding variable arguments, if any, into comma-separated values. 
0305      */
0306     public Number getTimezoneOffset();
0307     /**
0308      * <p>Sets the fields of the current date instance using the millisecond format.</p>
0309      * @param time The number of milliseconds between the desired date and time and 
0310      * midnight GMT on January 1, 1970. A millisecond value of this type may also be 
0311      * passed to the {@link Js#date(Number)}, {@link js.core.JsDate#JsDate(Number)}, 
0312      * {@link js.core.JsDate#JsDate(NumberLike)}, {@link js.core.JsDate#JsDate(String)}, 
0313      * {@link js.core.JsDate#JsDate(StringLike)}, {@link js.core.JsGlobal.Date#create(Number)} 
0314      * or {@link js.core.JsGlobal.Date#create(Number)} and may be obtained by calling the 
0315      * {@link js.core.JsGlobal.Date#UTC(Object, Object)} and {@link js.core.JsGlobal.Date#parse(Object)} 
0316      * methods. Representing a date in this millisecond format makes it independent of 
0317      * time zone.
0318      * @return The <tt>time</tt> argument. Prior to ECMAScript standardization, 
0319      * this method returns nothing.
0320      * @see jsx.core.DateLikes#setTime(DateLike, Object)
0321      * @since 1.0
0322      * @javascript Re-compilers must convert the interface invocation of this method directly 
0323      * into a JavaScript invocation on its current date instance without changing the 
0324      * method name, but expanding variable arguments, if any, into comma-separated values. 
0325      */
0326     public Number setTime(Object time);
0327     /**
0328      * <p>Sets the milliseconds field of a date, using local time.</p>
0329      * @param ms The milliseconds field, expressed in local time, to be set in the current 
0330      * date instance. This argument should be an integer between 0 and 999.
0331      * @return The millisecond representation of the adjusted date.
0332      * @see #setUTCMilliseconds(Object)
0333      * @see jsx.core.DateLikes#setMilliseconds(DateLike, Object)
0334      * @since 1.0
0335      * @javascript Re-compilers must convert the interface invocation of this method directly 
0336      * into a JavaScript invocation on its current date instance without changing the 
0337      * method name, but expanding variable arguments, if any, into comma-separated values. 
0338      */
0339     public Number setMilliseconds(Object ms);
0340     /**
0341      * <p>Sets the milliseconds field of the current date instance, using universal time.</p>
0342      * @param ms The milliseconds field, expressed in universal time, to be set in the 
0343      * current date instance. This argument should be an integer between 0 and 999.
0344      * @return The millisecond representation of the adjusted date.
0345      * @see #setMilliseconds(Object)
0346      * @see jsx.core.DateLikes#setUTCMilliseconds(DateLike, Object)
0347      * @since 1.0
0348      * @javascript Re-compilers must convert the interface invocation of this method directly 
0349      * into a JavaScript invocation on its current date instance without changing the 
0350      * method name, but expanding variable arguments, if any, into comma-separated values. 
0351      */
0352     public Number setUTCMilliseconds(Object ms);
0353     /**
0354      * <p>Sets the seconds field of the current date instance, using local time.</p>
0355      * @param sec An integer between 0 and 59 that is set as the seconds value for the 
0356      * current date instance.
0357      * @return The millisecond representation of the adjusted date. Prior to ECMAScript 
0358      * standardization, this method returns nothing.
0359      * @see #setUTCSeconds(Object)
0360      * @see #setSeconds(Object, Object)
0361      * @see jsx.core.DateLikes#setSeconds(DateLike, Object)
0362      * @since 1.0
0363      * @javascript Re-compilers must convert the interface invocation of this method directly 
0364      * into a JavaScript invocation on its current date instance without changing the 
0365      * method name, but expanding variable arguments, if any, into comma-separated values. 
0366      */
0367     public Number setSeconds(Object sec);
0368     /**
0369      * <p>Sets the seconds field of the current date instance, using universal time.</p>
0370      * @param sec The seconds field, expressed in universal time, to be set in the current 
0371      * date instance. This argument should be an integer between 0 and 59.
0372      * @return The millisecond representation of the adjusted date.
0373      * @see #setSeconds(Object)
0374      * @see #setUTCSeconds(Object, Object)
0375      * @see jsx.core.DateLikes#setUTCSeconds(DateLike, Object)
0376      * @since 1.0
0377      * @javascript Re-compilers must convert the interface invocation of this method directly 
0378      * into a JavaScript invocation on its current date instance without changing the 
0379      * method name, but expanding variable arguments, if any, into comma-separated values. 
0380      */
0381     public Number setUTCSeconds(Object sec);
0382     /**
0383      * <p>Sets the seconds field and optionally the milliseconds field of the current date 
0384      * instance, using local .</p>
0385      * @param sec An integer between 0 and 59 that is set as the seconds value for the 
0386      * current date instance.
0387      * @param ms An optional integer, between 0 and 999, that is used as the new value 
0388      * in local time of the milliseconds field of the current date instance. This argument 
0389      * is not supported prior to ECMAScript standardization.
0390      * @return The millisecond representation of the adjusted date. Prior to ECMAScript 
0391      * standardization, this method returns nothing.
0392      * @see #setUTCSeconds(Object, Object)
0393      * @see #setSeconds(Object)
0394      * @see jsx.core.DateLikes#setSeconds(DateLike, Object, Object)
0395      * @since 1.0
0396      * @javascript Re-compilers must convert the interface invocation of this method directly 
0397      * into a JavaScript invocation on its current date instance without changing the 
0398      * method name, but expanding variable arguments, if any, into comma-separated values. 
0399      */
0400     public Number setSeconds(Object sec, Object ms);
0401     /**
0402      * <p>Sets the seconds field and optionally the milliseconds field of the current date 
0403      * instance, using universal time.</p>
0404      * @param sec The seconds field, expressed in universal time, to be set in the current 
0405      * date instance. This argument should be an integer between 0 and 59.
0406      * @param ms An optional integer, between 0 and 999, that is used as the new value 
0407      * in universal time of the milliseconds field of the current date instance.
0408      * @return The millisecond representation of the adjusted date.
0409      * @see #setSeconds(Object, Object)
0410      * @see #setUTCSeconds(Object)
0411      * @see jsx.core.DateLikes#setUTCSeconds(DateLike, Object, Object)
0412      * @since 1.0
0413      * @javascript Re-compilers must convert the interface invocation of this method directly 
0414      * into a JavaScript invocation on its current date instance without changing the 
0415      * method name, but expanding variable arguments, if any, into comma-separated values. 
0416      */
0417     public Number setUTCSeconds(Object sec, Object ms);
0418     /**
0419      * <p>Sets the minutes field of the current date instance, using local time.</p>
0420      * @param min An optional integer, between 0 and 59, that is used as the new value 
0421      * in local time of the minutes field of the current date instance.
0422      * @return The millisecond representation of the adjusted date. 
0423      * Prior to ECMAScript standardization, this method returns nothing.
0424      * @see #setUTCMinutes(Object)
0425      * @see #setMinutes(Object, Object)
0426      * @see #setMinutes(Object, Object, Object)
0427      * @see jsx.core.DateLikes#setMinutes(DateLike, Object)
0428      * @since 1.0
0429      * @javascript Re-compilers must convert the interface invocation of this method directly 
0430      * into a JavaScript invocation on its current date instance without changing the 
0431      * method name, but expanding variable arguments, if any, into comma-separated values. 
0432      */
0433     public Number setMinutes(Object min);
0434     /**
0435      * <p>Sets the minutes field of the current date instance, using universal time.</p>
0436      * @param min An optional integer, between 0 and 59, that is used as the new value 
0437      * in universal time of the minutes field of the current date instance.
0438      * @return The millisecond representation of the adjusted date. 
0439      * Prior to ECMAScript standardization, this method returns nothing.
0440      * @see #setMinutes(Object)
0441      * @see #setUTCMinutes(Object, Object)
0442      * @see #setUTCMinutes(Object, Object, Object)
0443      * @see jsx.core.DateLikes#setUTCMinutes(DateLike, Object)
0444      * @since 1.0
0445      * @javascript Re-compilers must convert the interface invocation of this method directly 
0446      * into a JavaScript invocation on its current date instance without changing the 
0447      * method name, but expanding variable arguments, if any, into comma-separated values. 
0448      */
0449     public Number setUTCMinutes(Object min);
0450     /**
0451      * <p>Sets the minutes field and optionally the seconds field of the current date 
0452      * instance, using local time.</p>
0453      * @param min An optional integer, between 0 and 59, that is used as the new value 
0454      * in local time of the minutes field of the current date instance. This argument is 
0455      * not supported prior to ECMAScript standardization.
0456      * @param sec An optional integer, between 0 and 59, that is used as the new value 
0457      * in local time of the seconds field of the current date instance. This argument is 
0458      * not supported prior to ECMAScript standardization.
0459      * @return The millisecond representation of the adjusted date. 
0460      * Prior to ECMAScript standardization, this method returns nothing.
0461      * @see #setUTCMinutes(Object, Object)
0462      * @see #setMinutes(Object)
0463      * @see #setMinutes(Object, Object, Object)
0464      * @see jsx.core.DateLikes#setMinutes(DateLike, Object, Object)
0465      * @since 1.0
0466      * @javascript Re-compilers must convert the interface invocation of this method directly 
0467      * into a JavaScript invocation on its current date instance without changing the 
0468      * method name, but expanding variable arguments, if any, into comma-separated values. 
0469      */
0470     public Number setMinutes(Object min, Object sec);
0471     /**
0472      * <p>Sets the minutes field and optionally the seconds field of the current date 
0473      * instance, using universal time.</p>
0474      * @param min An optional integer, between 0 and 59, that is used as the new value 
0475      * in universal time of the minutes field of the current date instance.
0476      * @param sec An optional integer, between 0 and 59, that is used as the new value 
0477      * in universal time of the seconds field of the current date instance.
0478      * @return The millisecond representation of the adjusted date. 
0479      * Prior to ECMAScript standardization, this method returns nothing.
0480      * @see #setMinutes(Object, Object)
0481      * @see #setUTCMinutes(Object)
0482      * @see #setUTCMinutes(Object, Object, Object)
0483      * @see jsx.core.DateLikes#setUTCMinutes(DateLike, Object, Object)
0484      * @since 1.0
0485      * @javascript Re-compilers must convert the interface invocation of this method directly 
0486      * into a JavaScript invocation on its current date instance without changing the 
0487      * method name, but expanding variable arguments, if any, into comma-separated values. 
0488      */
0489     public Number setUTCMinutes(Object min, Object sec);
0490     /**
0491      * <p>Sets the minutes field and optionally the seconds and milliseconds fields of the 
0492      * current date instance, using local time.</p>
0493      * @param min An optional integer, between 0 and 59, that is used as the new value 
0494      * in local time of the minutes field of the current date instance. This argument is 
0495      * not supported prior to ECMAScript standardization.
0496      * @param sec An optional integer, between 0 and 59, that is used as the new value 
0497      * in local time of the seconds field of the current date instance. This argument is 
0498      * not supported prior to ECMAScript standardization.
0499      * @param ms An optional integer, between 0 and 999, that is used as the new value 
0500      * in local time of the milliseconds field of the current date instance. This argument 
0501      * is not supported prior to ECMAScript standardization.
0502      * @return The millisecond representation of the adjusted date. 
0503      * Prior to ECMAScript standardization, this method returns nothing.
0504      * @see #setUTCMinutes(Object, Object, Object)
0505      * @see #setMinutes(Object)
0506      * @see #setMinutes(Object, Object)
0507      * @see jsx.core.DateLikes#setMinutes(DateLike, Object, Object, Object)
0508      * @since 1.0
0509      * @javascript Re-compilers must convert the interface invocation of this method directly 
0510      * into a JavaScript invocation on its current date instance without changing the 
0511      * method name, but expanding variable arguments, if any, into comma-separated values. 
0512      */
0513     public Number setMinutes(Object min, Object sec, Object ms);
0514     /**
0515      * <p>Sets the minutes field and optionally the seconds and milliseconds fields of the 
0516      * current date instance, using universal time.</p>
0517      * @param min An optional integer, between 0 and 59, that is used as the new value 
0518      * in universal time of the minutes field of the current date instance.
0519      * @param sec An optional integer, between 0 and 59, that is used as the new value 
0520      * in universal time of the seconds field of the current date instance.
0521      * @param ms An optional integer, between 0 and 999, that is used as the new value 
0522      * in universal time of the milliseconds field of the current date instance.
0523      * @return The millisecond representation of the adjusted date. 
0524      * Prior to ECMAScript standardization, this method returns nothing.
0525      * @see #setMinutes(Object, Object, Object)
0526      * @see #setUTCMinutes(Object)
0527      * @see #setUTCMinutes(Object, Object)
0528      * @see jsx.core.DateLikes#setUTCMinutes(DateLike, Object, Object, Object)
0529      * @since 1.0
0530      * @javascript Re-compilers must convert the interface invocation of this method directly 
0531      * into a JavaScript invocation on its current date instance without changing the 
0532      * method name, but expanding variable arguments, if any, into comma-separated values. 
0533      */
0534     public Number setUTCMinutes(Object min, Object sec, Object ms);
0535     /**
0536      * <p>Sets the hour field of the current date instance, using local time.</p>
0537      * @param hr An integer between 0 (midnight) and 23 (11 p.m.) local time that is set 
0538      * as the new hours value of the current date instance.
0539      * @return The millisecond representation of the adjusted date. 
0540      * Prior to ECMAScript standardization, this method returns nothing.
0541      * @see #setUTCHours(Object)
0542      * @see #setHours(Object, Object)
0543      * @see #setHours(Object, Object, Object)
0544      * @see #setHours(Object, Object, Object, Object)
0545      * @see jsx.core.DateLikes#setHours(DateLike, Object)
0546      * @since 1.0
0547      * @javascript Re-compilers must convert the interface invocation of this method directly 
0548      * into a JavaScript invocation on its current date instance without changing the 
0549      * method name, but expanding variable arguments, if any, into comma-separated values. 
0550      */
0551     public Number setHours(Object hr);
0552     /**
0553      * <p>Sets the hour field of the current date instance, using universal time.</p>
0554      * @param hr The hours field, expressed in universal time, to be set in the current 
0555      * date instance. This argument should be an integer between 0 (midnight) and 23 
0556      * (11 p.m.).
0557      * @return The millisecond representation of the adjusted date. 
0558      * @see #setHours(Object)
0559      * @see #setUTCHours(Object, Object)
0560      * @see #setUTCHours(Object, Object, Object)
0561      * @see #setUTCHours(Object, Object, Object, Object)
0562      * @see jsx.core.DateLikes#setUTCHours(DateLike, Object)
0563      * @since 1.0
0564      * @javascript Re-compilers must convert the interface invocation of this method directly 
0565      * into a JavaScript invocation on its current date instance without changing the 
0566      * method name, but expanding variable arguments, if any, into comma-separated values. 
0567      */
0568     public Number setUTCHours(Object hr);
0569     /**
0570      * <p>Sets the hour field and optionally the minutes field of the current date 
0571      * instance, using local time.</p>
0572      * @param hr An integer between 0 (midnight) and 23 (11 p.m.) local time that is set 
0573      * as the new hours value of the current date instance.
0574      * @param min An optional integer, between 0 and 59, that is used as the new value 
0575      * in local time of the minutes field of the current date instance. This argument is 
0576      * not supported prior to ECMAScript standardization.
0577      * @return The millisecond representation of the adjusted date. 
0578      * Prior to ECMAScript standardization, this method returns nothing.
0579      * @see #setUTCHours(Object, Object)
0580      * @see #setHours(Object)
0581      * @see #setHours(Object, Object, Object)
0582      * @see #setHours(Object, Object, Object, Object)
0583      * @see jsx.core.DateLikes#setHours(DateLike, Object, Object)
0584      * @since 1.0
0585      * @javascript Re-compilers must convert the interface invocation of this method directly 
0586      * into a JavaScript invocation on its current date instance without changing the 
0587      * method name, but expanding variable arguments, if any, into comma-separated values. 
0588      */
0589     public Number setHours(Object hr, Object min);
0590     /**
0591      * <p>Sets the hour field and optionally the minutes field of the current date 
0592      * instance, using universal time.</p>
0593      * @param hr The hours field, expressed in universal time, to be set in the current 
0594      * date instance. This argument should be an integer between 0 (midnight) and 23 
0595      * (11 p.m.).
0596      * @param min An optional integer, between 0 and 59, that is used as the new value 
0597      * in universal time of the minutes field of the current date instance.
0598      * @return The millisecond representation of the adjusted date. 
0599      * @see #setHours(Object, Object)
0600      * @see #setUTCHours(Object)
0601      * @see #setUTCHours(Object, Object, Object)
0602      * @see #setUTCHours(Object, Object, Object, Object)
0603      * @see jsx.core.DateLikes#setUTCHours(DateLike, Object, Object)
0604      * @since 1.0
0605      * @javascript Re-compilers must convert the interface invocation of this method directly 
0606      * into a JavaScript invocation on its current date instance without changing the 
0607      * method name, but expanding variable arguments, if any, into comma-separated values. 
0608      */
0609     public Number setUTCHours(Object hr, Object min);
0610     /**
0611      * <p>Sets the hour field and optionally the minutes and seconds fields of the current 
0612      * date instance, using local time.</p>
0613      * @param hr An integer between 0 (midnight) and 23 (11 p.m.) local time that is set 
0614      * as the new hours value of the current date instance.
0615      * @param min An optional integer, between 0 and 59, that is used as the new value 
0616      * in local time of the minutes field of the current date instance. This argument is 
0617      * not supported prior to ECMAScript standardization.
0618      * @param sec An optional integer, between 0 and 59, that is used as the new value 
0619      * in local time of the seconds field of the current date instance. This argument is 
0620      * not supported prior to ECMAScript standardization.
0621      * @return The millisecond representation of the adjusted date. 
0622      * Prior to ECMAScript standardization, this method returns nothing.
0623      * @see #setUTCHours(Object, Object, Object)
0624      * @see #setHours(Object)
0625      * @see #setHours(Object, Object)
0626      * @see #setHours(Object, Object, Object, Object)
0627      * @see jsx.core.DateLikes#setHours(DateLike, Object, Object, Object)
0628      * @since 1.0
0629      * @javascript Re-compilers must convert the interface invocation of this method directly 
0630      * into a JavaScript invocation on its current date instance without changing the 
0631      * method name, but expanding variable arguments, if any, into comma-separated values. 
0632      */
0633     public Number setHours(Object hr, Object min, Object sec);
0634     /**
0635      * <p>Sets the hour field and optionally the minutes and seconds fields of the current 
0636      * date instance, using universal time.</p>
0637      * @param hr The hours field, expressed in universal time, to be set in the current 
0638      * date instance. This argument should be an integer between 0 (midnight) and 23 
0639      * (11 p.m.).
0640      * @param min An optional integer, between 0 and 59, that is used as the new value 
0641      * in universal time of the minutes field of the current date instance.
0642      * @param sec An optional integer, between 0 and 59, that is used as the new value 
0643      * in universal time of the seconds field of the current date instance.
0644      * @return The millisecond representation of the adjusted date.
0645      * @see #setHours(Object, Object, Object)
0646      * @see #setUTCHours(Object)
0647      * @see #setUTCHours(Object, Object)
0648      * @see #setUTCHours(Object, Object, Object, Object)
0649      * @see jsx.core.DateLikes#setUTCHours(DateLike, Object, Object, Object)
0650      * @since 1.0
0651      * @javascript Re-compilers must convert the interface invocation of this method directly 
0652      * into a JavaScript invocation on its current date instance without changing the 
0653      * method name, but expanding variable arguments, if any, into comma-separated values. 
0654      */
0655     public Number setUTCHours(Object hr, Object min, Object sec);
0656     /**
0657      * <p>Sets the hour field and optionally the minutes, seconds, and milliseconds fields 
0658      * of the current date instance, using local time.</p>
0659      * @param hr An integer between 0 (midnight) and 23 (11 p.m.) local time that is set 
0660      * as the new hours value of the current date instance.
0661      * @param min An optional integer, between 0 and 59, that is used as the new value 
0662      * in local time of the minutes field of the current date instance. This argument is 
0663      * not supported prior to ECMAScript standardization.
0664      * @param sec An optional integer, between 0 and 59, that is used as the new value 
0665      * in local time of the seconds field of the current date instance. This argument is 
0666      * not supported prior to ECMAScript standardization.
0667      * @param ms An optional integer, between 0 and 999, that is used as the new value 
0668      * in local time of the milliseconds field of the current date instance. This argument 
0669      * is not supported prior to ECMAScript standardization.
0670      * @return The millisecond representation of the adjusted date. 
0671      * Prior to ECMAScript standardization, this method returns nothing.
0672      * @see #setUTCHours(Object, Object, Object, Object)
0673      * @see #setHours(Object)
0674      * @see #setHours(Object, Object)
0675      * @see #setHours(Object, Object, Object)
0676      * @see jsx.core.DateLikes#setHours(DateLike, Object, Object, Object, Object)
0677      * @since 1.0
0678      * @javascript Re-compilers must convert the interface invocation of this method directly 
0679      * into a JavaScript invocation on its current date instance without changing the 
0680      * method name, but expanding variable arguments, if any, into comma-separated values. 
0681      */
0682     public Number setHours(Object hr, Object min, Object sec, Object ms);
0683     /**
0684      * <p>Sets the hour field and optionally the minutes, seconds, and milliseconds fields 
0685      * of the current date instance, using universal time.</p>
0686      * @param hr The hours field, expressed in universal time, to be set in the current 
0687      * date instance. This argument should be an integer between 0 (midnight) and 23 
0688      * (11 p.m.).
0689      * @param min An optional integer, between 0 and 59, that is used as the new value 
0690      * in universal time of the minutes field of the current date instance.
0691      * @param sec An optional integer, between 0 and 59, that is used as the new value 
0692      * in universal time of the seconds field of the current date instance.
0693      * @param ms An optional integer, between 0 and 999, that is used as the new value 
0694      * in universal time of the milliseconds field of the current date instance.
0695      * @return The millisecond representation of the adjusted date.
0696      * @see #setHours(Object, Object, Object, Object)
0697      * @see #setUTCHours(Object)
0698      * @see #setUTCHours(Object, Object)
0699      * @see #setUTCHours(Object, Object, Object)
0700      * @see jsx.core.DateLikes#setUTCHours(DateLike, Object, Object, Object, Object)
0701      * @since 1.0
0702      * @javascript Re-compilers must convert the interface invocation of this method directly 
0703      * into a JavaScript invocation on its current date instance without changing the 
0704      * method name, but expanding variable arguments, if any, into comma-separated values. 
0705      */
0706     public Number setUTCHours(Object hr, Object min, Object sec, Object ms);
0707     /**
0708      * <p>Sets the day of the month field of the current date instance, using local time.</p>
0709      * @param day An integer between 1 and 31 that is used as the new value in local time 
0710      * of the day-of-the-month field of the current date instance.
0711      * @return The millisecond representation of the adjusted date. 
0712      * Prior to ECMAScript standardization, this method returns nothing.
0713      * @see #setUTCDate(Object)
0714      * @see jsx.core.DateLikes#setDate(DateLike, Object)
0715      * @since 1.0
0716      * @javascript Re-compilers must convert the interface invocation of this method directly 
0717      * into a JavaScript invocation on its current date instance without changing the 
0718      * method name, but expanding variable arguments, if any, into comma-separated values. 
0719      */
0720     public Number setDate(Object day);
0721     /**
0722      * <p>Sets the day of the month field of the current date instance, using universal 
0723      * time.</p>
0724      * @param day The day of the month, expressed in universal time, to be set in the 
0725      * current date instance. This argument should be an integer between 1 and 31.
0726      * @return The millisecond representation of the adjusted date. 
0727      * @see #setDate(Object)
0728      * @see jsx.core.DateLikes#setUTCDate(DateLike, Object)
0729      * @since 1.0
0730      * @javascript Re-compilers must convert the interface invocation of this method directly 
0731      * into a JavaScript invocation on its current date instance without changing the 
0732      * method name, but expanding variable arguments, if any, into comma-separated values. 
0733      */
0734     public Number setUTCDate(Object day);
0735     /**
0736      * <p>Sets the month field of the current date instance, using local time.</p>
0737      * @param mo An integer between 0 ( January) and 11 (December) that is set as the month 
0738      * value in local time for the current date instance. Note that months are numbered 
0739      * beginning with 0, while days within the month are numbered beginning with 1.
0740      * @return The millisecond representation of the adjusted date. 
0741      * Prior to ECMAScript standardization, this method returns nothing.
0742      * @see #setUTCMonth(Object)
0743      * @see #setMonth(Object, Object)
0744      * @see jsx.core.DateLikes#setMonth(DateLike, Object)
0745      * @since 1.0
0746      * @javascript Re-compilers must convert the interface invocation of this method directly 
0747      * into a JavaScript invocation on its current date instance without changing the 
0748      * method name, but expanding variable arguments, if any, into comma-separated values. 
0749      */
0750     public Number setMonth(Object mo);
0751     /**
0752      * <p>Sets the month field of the current date instance, using universal time.</p>
0753      * @param mo The month, expressed in universal time, to be set in the current date
0754      * instance. This argument should be an integer between 0 (January) and 11 (December). 
0755      * Note that months are numbered beginning with 0, while days within the month are 
0756      * numbered beginning with 1.
0757      * @return The millisecond representation of the adjusted date. 
0758      * @see #setMonth(Object)
0759      * @see #setUTCMonth(Object, Object)
0760      * @see jsx.core.DateLikes#setUTCMonth(DateLike, Object)
0761      * @since 1.0
0762      * @javascript Re-compilers must convert the interface invocation of this method directly 
0763      * into a JavaScript invocation on its current date instance without changing the 
0764      * method name, but expanding variable arguments, if any, into comma-separated values. 
0765      */
0766     public Number setUTCMonth(Object mo);
0767     /**
0768      * <p>Sets the month field and optionally the day of the month of the current date 
0769      * instance, using local time.</p>
0770      * @param mo An integer between 0 ( January) and 11 (December) that is set as the month 
0771      * value in local time for the current date instance. Note that months are numbered 
0772      * beginning with 0, while days within the month are numbered beginning with 1.
0773      * @param day An optional integer between 1 and 31 that is used as the new value in 
0774      * local time of the day-of-the-month field of the current date instance. This argument 
0775      * is not supported prior to ECMAScript standardization.
0776      * @return The millisecond representation of the adjusted date. 
0777      * Prior to ECMAScript standardization, this method returns nothing.
0778      * @see #setUTCMonth(Object, Object)
0779      * @see #setMonth(Object)
0780      * @see jsx.core.DateLikes#setMonth(DateLike, Object, Object)
0781      * @since 1.0
0782      * @javascript Re-compilers must convert the interface invocation of this method directly 
0783      * into a JavaScript invocation on its current date instance without changing the 
0784      * method name, but expanding variable arguments, if any, into comma-separated values. 
0785      */
0786     public Number setMonth(Object mo, Object day);
0787     /**
0788      * <p>Sets the month field and optionally the day of the month of the current date 
0789      * instance, using universal time.</p>
0790      * @param mo The month, expressed in universal time, to be set in the current date
0791      * instance. This argument should be an integer between 0 (January) and 11 (December). 
0792      * Note that months are numbered beginning with 0, while days within the month are 
0793      * numbered beginning with 1.
0794      * @param day An optional integer between 1 and 31 that is used as the new value in 
0795      * universal time of the day-of-the-month field of the current date instance.
0796      * @return The millisecond representation of the adjusted date. 
0797      * @see #setMonth(Object, Object)
0798      * @see #setUTCMonth(Object)
0799      * @see jsx.core.DateLikes#setUTCMonth(DateLike, Object, Object)
0800      * @since 1.0
0801      * @javascript Re-compilers must convert the interface invocation of this method directly 
0802      * into a JavaScript invocation on its current date instance without changing the 
0803      * method name, but expanding variable arguments, if any, into comma-separated values. 
0804      */
0805     public Number setUTCMonth(Object mo, Object day);
0806     /**
0807      * <p>Sets the year field of the current date instance, using local time.</p>
0808      * @param yr The year, expressed in local time, to be set in the current date instance. 
0809      * This argument should be an integer that includes the century, such as 1999; it 
0810      * should not be an abbreviation, such as 99.
0811      * @return The millisecond representation of the adjusted date. 
0812      * @see #setUTCFullYear(Object)
0813      * @see #setFullYear(Object, Object)
0814      * @see #setFullYear(Object, Object, Object)
0815      * @see jsx.core.DateLikes#setFullYear(DateLike, Object)
0816      * @since 1.0
0817      * @javascript Re-compilers must convert the interface invocation of this method directly 
0818      * into a JavaScript invocation on its current date instance without changing the 
0819      * method name, but expanding variable arguments, if any, into comma-separated values. 
0820      */
0821     public Number setFullYear(Object yr);
0822     /**
0823      * <p>Sets the year field of the current date instance, using universal time.</p>
0824      * @param yr The year, expressed in universal time, to be set in the current date 
0825      * instance. This argument should be an integer that includes the century, such as 
0826      * 1999, not an abbreviation, such as 99.
0827      * @return The millisecond representation of the adjusted date. 
0828      * @see #setFullYear(Object)
0829      * @see #setUTCFullYear(Object, Object)
0830      * @see #setUTCFullYear(Object, Object, Object)
0831      * @see jsx.core.DateLikes#setUTCFullYear(DateLike, Object)
0832      * @since 1.0
0833      * @javascript Re-compilers must convert the interface invocation of this method directly 
0834      * into a JavaScript invocation on its current date instance without changing the 
0835      * method name, but expanding variable arguments, if any, into comma-separated values. 
0836      */
0837     public Number setUTCFullYear(Object yr);
0838     /**
0839      * <p>Sets the year and optionally month fields of the current date instance, using 
0840      * local time.</p>
0841      * @param yr The year, expressed in local time, to be set in the current date instance. 
0842      * This argument should be an integer that includes the century, such as 1999; it 
0843      * should not be an abbreviation, such as 99.
0844      * @param mo An optional integer between 0 and 11 that is used as the new value in 
0845      * local time of the month field of the current date instance.
0846      * @return The millisecond representation of the adjusted date. 
0847      * @see #setUTCFullYear(Object, Object)
0848      * @see #setFullYear(Object)
0849      * @see #setFullYear(Object, Object, Object)
0850      * @see jsx.core.DateLikes#setFullYear(DateLike, Object, Object)
0851      * @since 1.0
0852      * @javascript Re-compilers must convert the interface invocation of this method directly 
0853      * into a JavaScript invocation on its current date instance without changing the 
0854      * method name, but expanding variable arguments, if any, into comma-separated values. 
0855      */
0856     public Number setFullYear(Object yr, Object mo);
0857     /**
0858      * <p>Sets the year and optionally month fields of the current date instance, using 
0859      * universal time.</p>
0860      * @param yr The year, expressed in universal time, to be set in the current date 
0861      * instance. This argument should be an integer that includes the century, such as 
0862      * 1999, not an abbreviation, such as 99.
0863      * @param mo An optional integer between 0 and 11 that is used as the new value in 
0864      * universal time of the month field of the current date instance. Note that months 
0865      * are numbered beginning with 0, while days within the month are numbered beginning 
0866      * with 1.
0867      * @return The millisecond representation of the adjusted date. 
0868      * @see #setFullYear(Object, Object)
0869      * @see #setUTCFullYear(Object)
0870      * @see #setUTCFullYear(Object, Object, Object)
0871      * @see jsx.core.DateLikes#setUTCFullYear(DateLike, Object, Object)
0872      * @since 1.0
0873      * @javascript Re-compilers must convert the interface invocation of this method directly 
0874      * into a JavaScript invocation on its current date instance without changing the 
0875      * method name, but expanding variable arguments, if any, into comma-separated values. 
0876      */
0877     public Number setUTCFullYear(Object yr, Object mo);
0878     /**
0879      * <p>Sets the year and optionally month and day fields of the current date instance, 
0880      * using local time.</p>
0881      * @param yr The year, expressed in local time, to be set in the current date instance. 
0882      * This argument should be an integer that includes the century, such as 1999; it 
0883      * should not be an abbreviation, such as 99.
0884      * @param mo An optional integer between 0 and 11 that is used as the new value in 
0885      * local time of the month field of the current date instance.
0886      * @param day An optional integer between 1 and 31 that is used as the new value in 
0887      * local time of the day-of-the-month field of the current date instance.
0888      * @return The millisecond representation of the adjusted date. 
0889      * @see #setUTCFullYear(Object, Object, Object)
0890      * @see #setFullYear(Object)
0891      * @see #setFullYear(Object, Object)
0892      * @see jsx.core.DateLikes#setFullYear(DateLike, Object, Object, Object)
0893      * @since 1.0
0894      * @javascript Re-compilers must convert the interface invocation of this method directly 
0895      * into a JavaScript invocation on its current date instance without changing the 
0896      * method name, but expanding variable arguments, if any, into comma-separated values. 
0897      */
0898     public Number setFullYear(Object yr, Object mo, Object day);
0899     /**
0900      * <p>Sets the year and optionally month and day fields of the current date instance, 
0901      * using universal time.</p>
0902      * @param yr The year, expressed in universal time, to be set in the current date 
0903      * instance. This argument should be an integer that includes the century, such as 
0904      * 1999, not an abbreviation, such as 99.
0905      * @param mo An optional integer between 0 and 11 that is used as the new value in 
0906      * universal time of the month field of the current date instance. Note that months 
0907      * are numbered beginning with 0, while days within the month are numbered beginning 
0908      * with 1.
0909      * @param day An optional integer between 1 and 31 that is used as the new value in 
0910      * universal time of the day-of-the-month field of the current date instance.
0911      * @return The millisecond representation of the adjusted date. 
0912      * @see #setFullYear(Object, Object, Object)
0913      * @see #setUTCFullYear(Object)
0914      * @see #setUTCFullYear(Object, Object)
0915      * @see jsx.core.DateLikes#setUTCFullYear(DateLike, Object, Object, Object)
0916      * @since 1.0
0917      * @javascript Re-compilers must convert the interface invocation of this method directly 
0918      * into a JavaScript invocation on its current date instance without changing the 
0919      * method name, but expanding variable arguments, if any, into comma-separated values. 
0920      */
0921     public Number setUTCFullYear(Object yr, Object mo, Object day);
0922     /**
0923      * <p>Converts a date to a string, using the local time zone and the local date 
0924      * formatting conventions.</p>
0925      * <p>This method also uses local conventions for date and time formatting, so the 
0926      * format may vary from platform to platform and from country to country. It returns 
0927      * a string formatted in what is likely the user's preferred date and time format.</p>
0928      * @return A string representation of the date and time specified by the current date 
0929      * instance. The date and time are represented in the local time zone and formatted 
0930      * using locally appropriate conventions.
0931      * @see #toLocaleDateString()
0932      * @see #toLocaleTimeString()
0933      * @see #toString()
0934      * @see #toUTCString()
0935      * @see jsx.core.DateLikes#toLocaleString(DateLike)
0936      * @since 1.0
0937      * @javascript Re-compilers must convert the interface invocation of this method directly 
0938      * into a JavaScript invocation on its current date instance without changing the 
0939      * method name, but expanding variable arguments, if any, into comma-separated values. 
0940      */
0941     public String toLocaleString();
0942     /**
0943      * <p>Returns a string that represents the date portion of the current date instance, 
0944      * expressed in the local time zone.</p>
0945      * @return An implementation-dependent, human-readable string representation of the 
0946      * date portion of the current date instance, expressed in the local time zone.
0947      * @see #toLocaleDateString()
0948      * @see #toLocaleString()
0949      * @see #toLocaleTimeString()
0950      * @see #toString()
0951      * @see #toTimeString()
0952      * @see jsx.core.DateLikes#toDateString(DateLike)
0953      * @since 1.0
0954      * @javascript Re-compilers must convert the interface invocation of this method directly 
0955      * into a JavaScript invocation on its current date instance without changing the 
0956      * method name, but expanding variable arguments, if any, into comma-separated values. 
0957      */
0958     public String toDateString();
0959     /**
0960      * <p>Returns a string that represents the time portion of the current date instance, 
0961      * expressed in the local time zone.</p>
0962      * @return An implementation-dependent, human-readable string representation of the 
0963      * time portion of the current date instance, expressed in the local time zone.
0964      * @see #toDateString()
0965      * @see #toLocaleDateString()
0966      * @see #toLocaleString()
0967      * @see #toLocaleTimeString()
0968      * @see #toString()
0969      * @see jsx.core.DateLikes#toTimeString(DateLike)
0970      * @since 1.0
0971      * @javascript Re-compilers must convert the interface invocation of this method directly 
0972      * into a JavaScript invocation on its current date instance without changing the 
0973      * method name, but expanding variable arguments, if any, into comma-separated values. 
0974      */
0975     public String toTimeString();
0976     /**
0977      * <p>Returns a string that represents the date portion of the current date instance, 
0978      * expressed in the local time zone, using the local date formatting conventions.</p>
0979      * @return An implementation-dependent, human-readable string representation of the 
0980      * date portion of the current date instance, expressed in the local time zone and 
0981      * formatted according to local conventions.
0982      * @see #toDateString()
0983      * @see #toLocaleString()
0984      * @see #toLocaleTimeString()
0985      * @see #toString()
0986      * @see #toTimeString()
0987      * @see jsx.core.DateLikes#toLocaleDateString(DateLike)
0988      * @since 1.0
0989      * @javascript Re-compilers must convert the interface invocation of this method directly 
0990      * into a JavaScript invocation on its current date instance without changing the 
0991      * method name, but expanding variable arguments, if any, into comma-separated values. 
0992      */
0993     public String toLocaleDateString();
0994     /**
0995      * <p>Returns a string that represents the time portion of the current date instance, 
0996      * expressed in the local time zone, using the local time formatting conventions.</p>
0997      * @return An implementation-dependent, human-readable string representation of the 
0998      * time portion of the current date instance, expressed in the local time zone and 
0999      * formatted according to local conventions.
1000      * @see #toDateString()
1001      * @see #toLocaleDateString()
1002      * @see #toLocaleString()
1003      * @see #toString()
1004      * @see #toTimeString()
1005      * @see jsx.core.DateLikes#toLocaleTimeString(DateLike)
1006      * @since 1.0
1007      * @javascript Re-compilers must convert the interface invocation of this method directly 
1008      * into a JavaScript invocation on its current date instance without changing the 
1009      * method name, but expanding variable arguments, if any, into comma-separated values. 
1010      */
1011     public String toLocaleTimeString();
1012     /**
1013      * <p>Converts the current date instance to a string, using universal time.</p>
1014      * @return A human-readable string representation, expressed in universal time, of the 
1015      * current date instance.
1016      * @see #toLocaleString()
1017      * @see #toString()
1018      * @see jsx.core.DateLikes#toUTCString(DateLike)
1019      * @since 1.0
1020      * @javascript Re-compilers must convert the interface invocation of this method directly 
1021      * into a JavaScript invocation on its current date instance without changing the 
1022      * method name, but expanding variable arguments, if any, into comma-separated values. 
1023      */
1024     public String toUTCString();
1025     /**
1026      * <p>Converts the current date instance to a string using the local time zone.</p>
1027      * @return A human-readable string representation of the current date instance, 
1028      * expressed in the local time zone.
1029      * @see #toDateString()
1030      * @see #toLocaleString()
1031      * @see #toTimeString()
1032      * @see #toUTCString()
1033      * @see js.core.JsGlobal.Date#parse(Object)
1034      * @since 1.0
1035      * @javascript Re-compilers must convert the interface invocation of this method directly 
1036      * into a JavaScript invocation on its current date instance without changing the 
1037      * method name, but expanding variable arguments, if any, into comma-separated values. 
1038      */
1039     public String toString();
1040     /**
1041      * <p>Returns the primitive value associated with the current instance, if there is one. 
1042      * This invocation returns the primitive number value associated with the current instance.</p>
1043      * @return The millisecond representation of the current date instance. The value 
1044      * returned is the same as that returned by {@link #getTime()}.
1045      * @since 1.0
1046      * @javascript Re-compilers must convert the interface invocation of this method directly 
1047      * into a JavaScript invocation on its current date instance without changing the 
1048      * method name, but expanding variable arguments, if any, into comma-separated values. 
1049      */
1050     public Number valueOf();
1051     /**
1052      * <p>Simply returns the date object of the current date instance.</p>
1053      * <p>This method is useful for JS Simulation to implement opaque types.</p>
1054      * <p>If the current instance is a Java simulated date and the method runs in JS 
1055      * Embed Simulation mode, the invocation creates and returns a JavaScript Date object 
1056      * as a runtime copy of the current instance.</p>
1057      * @return The date object of the current instance.
1058      * @since 1.0
1059      * @javascript Re-compilers must ignore the interface invocation of this method, that is, 
1060      * replacing it with its current instance.
1061      */
1062     public JsDate var();
1063 }