⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nativedate.java

📁 java中比较著名的js引擎当属mozilla开源的rhino
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        index *= 3;        for (int i = 0; i != 3; ++i) {            sb.append(months.charAt(index + i));        }    }    private static void appendWeekDayName(StringBuffer sb, int index)    {        String days = "Sun"+"Mon"+"Tue"+"Wed"+"Thu"+"Fri"+"Sat";        index *= 3;        for (int i = 0; i != 3; ++i) {            sb.append(days.charAt(index + i));        }    }    private static double makeTime(double date, Object[] args, int methodId)    {        int maxargs;        boolean local = true;        switch (methodId) {          case Id_setUTCMilliseconds:              local = false;            // fallthrough          case Id_setMilliseconds:            maxargs = 1;            break;          case Id_setUTCSeconds:              local = false;            // fallthrough          case Id_setSeconds:            maxargs = 2;            break;          case Id_setUTCMinutes:              local = false;            // fallthrough          case Id_setMinutes:            maxargs = 3;            break;          case Id_setUTCHours:              local = false;            // fallthrough          case Id_setHours:            maxargs = 4;            break;          default:              Kit.codeBug();            maxargs = 0;        }        int i;        double conv[] = new double[4];        double hour, min, sec, msec;        double lorutime; /* Local or UTC version of date */        double time;        double result;        /* just return NaN if the date is already NaN */        if (date != date)            return date;        /* Satisfy the ECMA rule that if a function is called with         * fewer arguments than the specified formal arguments, the         * remaining arguments are set to undefined.  Seems like all         * the Date.setWhatever functions in ECMA are only varargs         * beyond the first argument; this should be set to undefined         * if it's not given.  This means that "d = new Date();         * d.setMilliseconds()" returns NaN.  Blech.         */        if (args.length == 0)            args = ScriptRuntime.padArguments(args, 1);        for (i = 0; i < args.length && i < maxargs; i++) {            conv[i] = ScriptRuntime.toNumber(args[i]);            // limit checks that happen in MakeTime in ECMA.            if (conv[i] != conv[i] || Double.isInfinite(conv[i])) {                return ScriptRuntime.NaN;            }            conv[i] = ScriptRuntime.toInteger(conv[i]);        }        if (local)            lorutime = LocalTime(date);        else            lorutime = date;        i = 0;        int stop = args.length;        if (maxargs >= 4 && i < stop)            hour = conv[i++];        else            hour = HourFromTime(lorutime);        if (maxargs >= 3 && i < stop)            min = conv[i++];        else            min = MinFromTime(lorutime);        if (maxargs >= 2 && i < stop)            sec = conv[i++];        else            sec = SecFromTime(lorutime);        if (maxargs >= 1 && i < stop)            msec = conv[i++];        else            msec = msFromTime(lorutime);        time = MakeTime(hour, min, sec, msec);        result = MakeDate(Day(lorutime), time);        if (local)            result = internalUTC(result);        date = TimeClip(result);        return date;    }    private static double makeDate(double date, Object[] args, int methodId)    {        int maxargs;        boolean local = true;        switch (methodId) {          case Id_setUTCDate:              local = false;            // fallthrough          case Id_setDate:              maxargs = 1;            break;          case Id_setUTCMonth:              local = false;            // fallthrough          case Id_setMonth:              maxargs = 2;            break;          case Id_setUTCFullYear:              local = false;            // fallthrough          case Id_setFullYear:              maxargs = 3;            break;          default:              Kit.codeBug();            maxargs = 0;        }        int i;        double conv[] = new double[3];        double year, month, day;        double lorutime; /* local or UTC version of date */        double result;        /* See arg padding comment in makeTime.*/        if (args.length == 0)            args = ScriptRuntime.padArguments(args, 1);        for (i = 0; i < args.length && i < maxargs; i++) {            conv[i] = ScriptRuntime.toNumber(args[i]);            // limit checks that happen in MakeDate in ECMA.            if (conv[i] != conv[i] || Double.isInfinite(conv[i])) {                return ScriptRuntime.NaN;            }            conv[i] = ScriptRuntime.toInteger(conv[i]);        }        /* return NaN if date is NaN and we're not setting the year,         * If we are, use 0 as the time. */        if (date != date) {            if (args.length < 3) {                return ScriptRuntime.NaN;            } else {                lorutime = 0;            }        } else {            if (local)                lorutime = LocalTime(date);            else                lorutime = date;        }        i = 0;        int stop = args.length;        if (maxargs >= 3 && i < stop)            year = conv[i++];        else            year = YearFromTime(lorutime);        if (maxargs >= 2 && i < stop)            month = conv[i++];        else            month = MonthFromTime(lorutime);        if (maxargs >= 1 && i < stop)            day = conv[i++];        else            day = DateFromTime(lorutime);        day = MakeDay(year, month, day); /* day within year */        result = MakeDate(day, TimeWithinDay(lorutime));        if (local)            result = internalUTC(result);        date = TimeClip(result);        return date;    }// #string_id_map#    protected int findPrototypeId(String s)    {        int id;// #generated# Last update: 2004-03-17 13:33:23 CET        L0: { id = 0; String X = null; int c;            L: switch (s.length()) {            case 6: X="getDay";id=Id_getDay; break L;            case 7: switch (s.charAt(3)) {                case 'D': c=s.charAt(0);                    if (c=='g') { X="getDate";id=Id_getDate; }                    else if (c=='s') { X="setDate";id=Id_setDate; }                    break L;                case 'T': c=s.charAt(0);                    if (c=='g') { X="getTime";id=Id_getTime; }                    else if (c=='s') { X="setTime";id=Id_setTime; }                    break L;                case 'Y': c=s.charAt(0);                    if (c=='g') { X="getYear";id=Id_getYear; }                    else if (c=='s') { X="setYear";id=Id_setYear; }                    break L;                case 'u': X="valueOf";id=Id_valueOf; break L;                } break L;            case 8: switch (s.charAt(3)) {                case 'H': c=s.charAt(0);                    if (c=='g') { X="getHours";id=Id_getHours; }                    else if (c=='s') { X="setHours";id=Id_setHours; }                    break L;                case 'M': c=s.charAt(0);                    if (c=='g') { X="getMonth";id=Id_getMonth; }                    else if (c=='s') { X="setMonth";id=Id_setMonth; }                    break L;                case 'o': X="toSource";id=Id_toSource; break L;                case 't': X="toString";id=Id_toString; break L;                } break L;            case 9: X="getUTCDay";id=Id_getUTCDay; break L;            case 10: c=s.charAt(3);                if (c=='M') {                    c=s.charAt(0);                    if (c=='g') { X="getMinutes";id=Id_getMinutes; }                    else if (c=='s') { X="setMinutes";id=Id_setMinutes; }                }                else if (c=='S') {                    c=s.charAt(0);                    if (c=='g') { X="getSeconds";id=Id_getSeconds; }                    else if (c=='s') { X="setSeconds";id=Id_setSeconds; }                }                else if (c=='U') {                    c=s.charAt(0);                    if (c=='g') { X="getUTCDate";id=Id_getUTCDate; }                    else if (c=='s') { X="setUTCDate";id=Id_setUTCDate; }                }                break L;            case 11: switch (s.charAt(3)) {                case 'F': c=s.charAt(0);                    if (c=='g') { X="getFullYear";id=Id_getFullYear; }                    else if (c=='s') { X="setFullYear";id=Id_setFullYear; }                    break L;                case 'M': X="toGMTString";id=Id_toGMTString; break L;                case 'T': X="toUTCString";id=Id_toUTCString; break L;                case 'U': c=s.charAt(0);                    if (c=='g') {                        c=s.charAt(9);                        if (c=='r') { X="getUTCHours";id=Id_getUTCHours; }                        else if (c=='t') { X="getUTCMonth";id=Id_getUTCMonth; }                    }                    else if (c=='s') {                        c=s.charAt(9);                        if (c=='r') { X="setUTCHours";id=Id_setUTCHours; }                        else if (c=='t') { X="setUTCMonth";id=Id_setUTCMonth; }                    }                    break L;                case 's': X="constructor";id=Id_constructor; break L;                } break L;            case 12: c=s.charAt(2);                if (c=='D') { X="toDateString";id=Id_toDateString; }                else if (c=='T') { X="toTimeString";id=Id_toTimeString; }                break L;            case 13: c=s.charAt(0);                if (c=='g') {                    c=s.charAt(6);                    if (c=='M') { X="getUTCMinutes";id=Id_getUTCMinutes; }                    else if (c=='S') { X="getUTCSeconds";id=Id_getUTCSeconds; }                }                else if (c=='s') {                    c=s.charAt(6);                    if (c=='M') { X="setUTCMinutes";id=Id_setUTCMinutes; }                    else if (c=='S') { X="setUTCSeconds";id=Id_setUTCSeconds; }                }                break L;            case 14: c=s.charAt(0);                if (c=='g') { X="getUTCFullYear";id=Id_getUTCFullYear; }                else if (c=='s') { X="setUTCFullYear";id=Id_setUTCFullYear; }                else if (c=='t') { X="toLocaleString";id=Id_toLocaleString; }                break L;            case 15: c=s.charAt(0);                if (c=='g') { X="getMilliseconds";id=Id_getMilliseconds; }                else if (c=='s') { X="setMilliseconds";id=Id_setMilliseconds; }                break L;            case 17: X="getTimezoneOffset";id=Id_getTimezoneOffset; break L;            case 18: c=s.charAt(0);                if (c=='g') { X="getUTCMilliseconds";id=Id_getUTCMilliseconds; }                else if (c=='s') { X="setUTCMilliseconds";id=Id_setUTCMilliseconds; }                else if (c=='t') {                    c=s.charAt(8);                    if (c=='D') { X="toLocaleDateString";id=Id_toLocaleDateString; }                    else if (c=='T') { X="toLocaleTimeString";id=Id_toLocaleTimeString; }                }                break L;            }            if (X!=null && X!=s && !X.equals(s)) id = 0;        }// #/generated#        return id;    }    private static final int        ConstructorId_now       = -3,        ConstructorId_parse     = -2,        ConstructorId_UTC       = -1,        Id_constructor          =  1,        Id_toString             =  2,        Id_toTimeString         =  3,        Id_toDateString         =  4,        Id_toLocaleString       =  5,        Id_toLocaleTimeString   =  6,        Id_toLocaleDateString   =  7,        Id_toUTCString          =  8,        Id_toSource             =  9,        Id_valueOf              = 10,        Id_getTime              = 11,        Id_getYear              = 12,        Id_getFullYear          = 13,        Id_getUTCFullYear       = 14,        Id_getMonth             = 15,        Id_getUTCMonth          = 16,        Id_getDate              = 17,        Id_getUTCDate           = 18,        Id_getDay               = 19,        Id_getUTCDay            = 20,        Id_getHours             = 21,        Id_getUTCHours          = 22,        Id_getMinutes           = 23,        Id_getUTCMinutes        = 24,        Id_getSeconds           = 25,        Id_getUTCSeconds        = 26,        Id_getMilliseconds      = 27,        Id_getUTCMilliseconds   = 28,        Id_getTimezoneOffset    = 29,        Id_setTime              = 30,        Id_setMilliseconds      = 31,        Id_setUTCMilliseconds   = 32,        Id_setSeconds           = 33,        Id_setUTCSeconds        = 34,        Id_setMinutes           = 35,        Id_setUTCMinutes        = 36,        Id_setHours             = 37,        Id_setUTCHours          = 38,        Id_setDate              = 39,        Id_setUTCDate           = 40,        Id_setMonth             = 41,        Id_setUTCMonth          = 42,        Id_setFullYear          = 43,        Id_setUTCFullYear       = 44,        Id_setYear              = 45,        MAX_PROTOTYPE_ID        = 45;    private static final int        Id_toGMTString  =  Id_toUTCString; // Alias, see Ecma B.2.6// #/string_id_map#    /* cached values */    private static java.util.TimeZone thisTimeZone;    private static double LocalTZA;    private static java.text.DateFormat timeZoneFormatter;    private static java.text.DateFormat localeDateTimeFormatter;    private static java.text.DateFormat localeDateFormatter;    private static java.text.DateFormat localeTimeFormatter;    private double date;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -