home *** CD-ROM | disk | FTP | other *** search
- package com.netscape.javascript;
-
- import java.lang.reflect.Constructor;
- import java.text.DateFormat;
- import java.util.Date;
- import java.util.TimeZone;
-
- public class NativeDate extends RescopeableObject {
- private static final double HalfTimeDomain = 8.64E15;
- private static final double HoursPerDay = (double)24.0F;
- private static final double MinutesPerHour = (double)60.0F;
- private static final double SecondsPerMinute = (double)60.0F;
- private static final double msPerSecond = (double)1000.0F;
- private static final double MinutesPerDay = (double)1440.0F;
- private static final double SecondsPerDay = (double)86400.0F;
- private static final double SecondsPerHour = (double)3600.0F;
- private static final double msPerDay = (double)8.64E7F;
- private static final double msPerHour = (double)3600000.0F;
- private static final double msPerMinute = (double)60000.0F;
- private static final boolean TZO_WORKAROUND = false;
- private static final int MAXARGS = 7;
- private static String[] wtb = new String[]{"am", "pm", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday", "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december", "gmt", "ut", "utc", "est", "edt", "cst", "cdt", "mst", "mdt", "pst", "pdt"};
- private static int[] ttb = new int[]{0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 10000, 10000, 10000, 10300, 10240, 10360, 10300, 10420, 10360, 10480, 10420};
- private static String js_NaN_date_str = "Invalid Date";
- private static String[] days = new String[]{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
- private static String[] months = new String[]{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
- private static final TimeZone thisTimeZone = TimeZone.getDefault();
- private static final double LocalTZA;
- private static DateFormat timeZoneFormatter;
- private static final DateFormat localeDateFormatter;
- private double date;
- // $FF: synthetic field
- private static Class class$com$netscape$javascript$NativeDate;
- // $FF: synthetic field
- private static Class class$java$lang$String;
-
- private static double LocalTime(double var0) {
- return var0 + LocalTZA + DaylightSavingTA(var0);
- }
-
- private static int msFromTime(double var0) {
- double var2 = var0 % (double)1000.0F;
- if (var2 < (double)0.0F) {
- var2 += (double)1000.0F;
- }
-
- return (int)var2;
- }
-
- public String getClassName() {
- return "Date";
- }
-
- private static int MonthFromTime(double var0) {
- int var2 = DayWithinYear(var0);
- int var3 = 31;
- if (var2 < 31) {
- return 0;
- } else {
- var3 += InLeapYear(var0) ? 29 : 28;
- if (var2 < var3) {
- return 1;
- } else {
- var3 += 31;
- if (var2 < var3) {
- return 2;
- } else {
- var3 += 30;
- if (var2 < var3) {
- return 3;
- } else {
- var3 += 31;
- if (var2 < var3) {
- return 4;
- } else {
- var3 += 30;
- if (var2 < var3) {
- return 5;
- } else {
- var3 += 31;
- if (var2 < var3) {
- return 6;
- } else {
- var3 += 31;
- if (var2 < var3) {
- return 7;
- } else {
- var3 += 30;
- if (var2 < var3) {
- return 8;
- } else {
- var3 += 31;
- if (var2 < var3) {
- return 9;
- } else {
- var3 += 30;
- return var2 < var3 ? 10 : 11;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-
- public static double parse(String var0) {
- return date_parseString(var0);
- }
-
- public double jsFunction_getUTCDate() {
- return this.date != this.date ? this.date : (double)DateFromTime(this.date);
- }
-
- public static double jsFunction_setUTCDate(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeDate(var1, var2, 1, false, var3);
- }
-
- private static double MakeDay(double var0, double var2, double var4) {
- var0 += Math.floor(var2 / (double)12.0F);
- var2 %= (double)12.0F;
- if (var2 < (double)0.0F) {
- var2 += (double)12.0F;
- }
-
- boolean var8 = DaysInYear((int)var0) == 366;
- double var9 = Math.floor(TimeFromYear(var0) / (double)8.64E7F);
- double var11 = DayFromMonth((int)var2, var8);
- double var6 = var9 + var11 + var4 - (double)1.0F;
- return var6;
- }
-
- public static void finishInit(Scriptable var0, FunctionObject var1, Scriptable var2) throws PropertyException {
- ((ScriptableObject)var2).defineProperty("toGMTString", var2.get("toUTCString", var2), 2);
- String[] var3 = new String[]{"setSeconds", "setUTCSeconds", "setMinutes", "setUTCMinutes", "setHours", "setUTCHours", "setMonth", "setUTCMonth", "setFullYear", "setUTCFullYear"};
- short[] var4 = new short[]{2, 2, 3, 3, 4, 4, 2, 2, 3, 3};
-
- for(int var5 = 0; var5 < var3.length; ++var5) {
- Object var6 = var2.get(var3[var5], var2);
- ((FunctionObject)var6).setLength(var4[var5]);
- }
-
- String[] var7 = new String[]{"UTC", "parse"};
- ((ScriptableObject)var1).defineFunctionProperties(var7, class$com$netscape$javascript$NativeDate != null ? class$com$netscape$javascript$NativeDate : (class$com$netscape$javascript$NativeDate = class$("com.netscape.javascript.NativeDate")), 2);
- ((NativeDate)var2).date = ScriptRuntime.NaN;
- }
-
- public double jsFunction_getUTCHours() {
- return this.date != this.date ? this.date : (double)HourFromTime(this.date);
- }
-
- public static double jsFunction_setUTCHours(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeTime(var1, var2, 4, false, var3);
- }
-
- private static int DaysInYear(int var0) {
- return var0 % 4 != 0 || var0 % 100 == 0 && var0 % 400 != 0 ? 365 : 366;
- }
-
- private static boolean InLeapYear(double var0) {
- return DaysInYear(YearFromTime(var0)) == 366;
- }
-
- private static int DayWithinYear(double var0) {
- int var2 = YearFromTime(var0);
- return (int)(Day(var0) - DayFromYear((double)var2));
- }
-
- public Object getDefaultValue(Class var1) {
- if (var1 == null) {
- var1 = ScriptRuntime.StringClass;
- }
-
- return super.getDefaultValue(var1);
- }
-
- public String js_toLocaleString() {
- if (this.date != this.date) {
- return js_NaN_date_str;
- } else {
- Date var1 = new Date((long)this.date);
- return localeDateFormatter.format(var1);
- }
- }
-
- private static double date_msecFromDate(double var0, double var2, double var4, double var6, double var8, double var10, double var12) {
- double var14 = MakeDay(var0, var2, var4);
- double var16 = MakeTime(var6, var8, var10, var12);
- double var18 = MakeDate(var14, var16);
- return var18;
- }
-
- public static Object js_Date(Context var0, Object[] var1, Function var2, boolean var3) {
- if (!var3) {
- return date_format(Now());
- } else {
- NativeDate var4 = new NativeDate();
- if (var1.length == 0) {
- var4.date = Now();
- return var4;
- } else if (var1.length == 1) {
- double var13;
- if (!(var1[0] instanceof String)) {
- var13 = ScriptRuntime.toNumber(var1[0]);
- } else {
- String var14 = (String)var1[0];
- var13 = date_parseString(var14);
- }
-
- var4.date = TimeClip(var13);
- return var4;
- } else {
- double[] var5 = new double[7];
- int var6 = 0;
-
- do {
- if (var6 < var1.length) {
- double var7 = ScriptRuntime.toNumber(var1[var6]);
- if (var7 != var7 || Double.isInfinite(var7)) {
- var4.date = ScriptRuntime.NaN;
- return var4;
- }
-
- var5[var6] = ScriptRuntime.toInteger(var1[var6]);
- } else {
- var5[var6] = (double)0.0F;
- }
-
- ++var6;
- } while(var6 < 7);
-
- if (var5[0] >= (double)0.0F && var5[0] <= (double)99.0F) {
- var5[0] += (double)1900.0F;
- }
-
- if (var5[2] < (double)1.0F) {
- var5[2] = (double)1.0F;
- }
-
- double var9 = MakeDay(var5[0], var5[1], var5[2]);
- double var11 = MakeTime(var5[3], var5[4], var5[5], var5[6]);
- var11 = MakeDate(var9, var11);
- var11 = internalUTC(var11);
- var4.date = TimeClip(var11);
- return var4;
- }
- }
- }
-
- public double jsFunction_getUTCMonth() {
- return this.date != this.date ? this.date : (double)MonthFromTime(this.date);
- }
-
- public static double jsFunction_setUTCMonth(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeDate(var1, var2, 2, false, var3);
- }
-
- public double jsFunction_getMinutes() {
- return this.date != this.date ? this.date : (double)MinFromTime(LocalTime(this.date));
- }
-
- private static double MakeTime(double var0, double var2, double var4, double var6) {
- return ((var0 * (double)60.0F + var2) * (double)60.0F + var4) * (double)1000.0F + var6;
- }
-
- private static double makeTime(Scriptable var0, Object[] var1, int var2, boolean var3, Function var4) {
- double[] var6 = new double[4];
- NativeDate var21 = checkInstance(var0, var4);
- double var22 = var21.date;
- if (var22 != var22) {
- return var22;
- } else {
- if (var1.length == 0) {
- var1 = ScriptRuntime.padArguments(var1, 1);
- }
-
- int var5 = 0;
-
- while(true) {
- if (var5 < var1.length && var5 < var2) {
- var6[var5] = ScriptRuntime.toNumber(var1[var5]);
- if (var6[var5] == var6[var5] && !Double.isInfinite(var6[var5])) {
- var6[var5] = ScriptRuntime.toInteger(var6[var5]);
- ++var5;
- continue;
- }
-
- var21.date = ScriptRuntime.NaN;
- return var21.date;
- }
-
- double var15;
- if (var3) {
- var15 = LocalTime(var22);
- } else {
- var15 = var22;
- }
-
- var5 = 0;
- int var24 = var1.length;
- double var7;
- if (var2 >= 4 && var5 < var24) {
- var7 = var6[var5++];
- } else {
- var7 = (double)HourFromTime(var15);
- }
-
- double var9;
- if (var2 >= 3 && var5 < var24) {
- var9 = var6[var5++];
- } else {
- var9 = (double)MinFromTime(var15);
- }
-
- double var11;
- if (var2 >= 2 && var5 < var24) {
- var11 = var6[var5++];
- } else {
- var11 = (double)SecFromTime(var15);
- }
-
- double var13;
- if (var2 >= 1 && var5 < var24) {
- var13 = var6[var5++];
- } else {
- var13 = (double)msFromTime(var15);
- }
-
- double var17 = MakeTime(var7, var9, var11, var13);
- double var19 = MakeDate(Day(var15), var17);
- if (var3) {
- var19 = internalUTC(var19);
- }
-
- var22 = TimeClip(var19);
- var21.date = var22;
- return var22;
- }
- }
- }
-
- public static double jsFunction_setMinutes(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeTime(var1, var2, 3, true, var3);
- }
-
- private static double TimeClip(double var0) {
- if (var0 == var0 && var0 != Double.POSITIVE_INFINITY && var0 != Double.NEGATIVE_INFINITY && !(Math.abs(var0) > 8.64E15)) {
- return var0 > (double)0.0F ? Math.floor(var0) : Math.ceil(var0);
- } else {
- return ScriptRuntime.NaN;
- }
- }
-
- public double jsFunction_getMilliseconds() {
- return this.date != this.date ? this.date : (double)msFromTime(LocalTime(this.date));
- }
-
- public static double jsFunction_setMilliseconds(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeTime(var1, var2, 1, true, var3);
- }
-
- // $FF: synthetic method
- private static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- public double jsFunction_getUTCMinutes() {
- return this.date != this.date ? this.date : (double)MinFromTime(this.date);
- }
-
- public static double jsFunction_setUTCMinutes(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeTime(var1, var2, 3, false, var3);
- }
-
- public double jsFunction_getDay() {
- return this.date != this.date ? this.date : (double)WeekDay(LocalTime(this.date));
- }
-
- public double jsFunction_getSeconds() {
- return this.date != this.date ? this.date : (double)SecFromTime(LocalTime(this.date));
- }
-
- public double jsFunction_getUTCMilliseconds() {
- return this.date != this.date ? this.date : (double)msFromTime(this.date);
- }
-
- private static double Day(double var0) {
- return Math.floor(var0 / (double)8.64E7F);
- }
-
- private static double TimeWithinDay(double var0) {
- double var2 = var0 % (double)8.64E7F;
- if (var2 < (double)0.0F) {
- var2 += (double)8.64E7F;
- }
-
- return var2;
- }
-
- public double jsFunction_getUTCDay() {
- return this.date != this.date ? this.date : (double)WeekDay(this.date);
- }
-
- public static double jsFunction_setUTCMilliseconds(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeTime(var1, var2, 1, false, var3);
- }
-
- public static double jsFunction_setSeconds(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeTime(var1, var2, 2, true, var3);
- }
-
- public double js_valueOf() {
- return this.date;
- }
-
- private static String date_format(double var0) {
- StringBuffer var2 = new StringBuffer(60);
- double var3 = LocalTime(var0);
- int var5 = (int)Math.floor((LocalTZA + DaylightSavingTA(var0)) / (double)60000.0F);
- int var6 = var5 / 60 * 100 + var5 % 60;
- String var7 = Integer.toString(DateFromTime(var3));
- String var8 = Integer.toString(HourFromTime(var3));
- String var9 = Integer.toString(MinFromTime(var3));
- String var10 = Integer.toString(SecFromTime(var3));
- String var11 = Integer.toString(var6 > 0 ? var6 : -var6);
- int var12 = YearFromTime(var3);
- String var13 = Integer.toString(var12 > 0 ? var12 : -var12);
- var2.append(days[WeekDay(var3)]);
- var2.append(" ");
- var2.append(months[MonthFromTime(var3)]);
- if (var7.length() == 1) {
- var2.append(" 0");
- } else {
- var2.append(" ");
- }
-
- var2.append(var7);
- if (var8.length() == 1) {
- var2.append(" 0");
- } else {
- var2.append(" ");
- }
-
- var2.append(var8);
- if (var9.length() == 1) {
- var2.append(":0");
- } else {
- var2.append(":");
- }
-
- var2.append(var9);
- if (var10.length() == 1) {
- var2.append(":0");
- } else {
- var2.append(":");
- }
-
- var2.append(var10);
- if (var6 > 0) {
- var2.append(" GMT+");
- } else {
- var2.append(" GMT-");
- }
-
- for(int var14 = var11.length(); var14 < 4; ++var14) {
- var2.append("0");
- }
-
- var2.append(var11);
- if (timeZoneFormatter != null) {
- var2.append(" (");
- Date var15 = new Date((long)var0);
- var2.append(timeZoneFormatter.format(var15));
- var2.append(") ");
- } else {
- var2.append(" ");
- }
-
- if (var12 < 0) {
- var2.append("-");
- }
-
- for(int var16 = var13.length(); var16 < 4; ++var16) {
- var2.append("0");
- }
-
- var2.append(var13);
- return var2.toString();
- }
-
- private static double DaylightSavingTA(double var0) {
- Date var2 = new Date((long)var0);
- return thisTimeZone.inDaylightTime(var2) ? (double)3600000.0F : (double)0.0F;
- }
-
- private static double date_parseString(String var0) {
- int var3 = -1;
- int var4 = -1;
- int var5 = -1;
- int var6 = -1;
- int var7 = -1;
- int var8 = -1;
- char var9 = '\u0000';
- char var10 = '\u0000';
- int var11 = 0;
- int var12 = -1;
- double var13 = (double)-1.0F;
- char var15 = 0;
- int var16 = 0;
- boolean var17 = false;
- if (var0 == null) {
- return ScriptRuntime.NaN;
- } else {
- var16 = var0.length();
-
- while(var11 < var16) {
- var9 = var0.charAt(var11);
- ++var11;
- if (var9 > ' ' && var9 != ',' && var9 != '-') {
- if (var9 != '(') {
- if ('0' > var9 || var9 > '9') {
- if (var9 != '/' && var9 != ':' && var9 != '+' && var9 != '-') {
- int var29;
- for(var29 = var11 - 1; var11 < var16; ++var11) {
- var9 = var0.charAt(var11);
- if (('A' > var9 || var9 > 'Z') && ('a' > var9 || var9 > 'z')) {
- break;
- }
- }
-
- if (var11 <= var29 + 1) {
- return ScriptRuntime.NaN;
- }
-
- int var19 = wtb.length;
-
- while(true) {
- --var19;
- if (var19 < 0) {
- break;
- }
-
- if (date_regionMatches(wtb[var19], 0, var0, var29, var11 - var29)) {
- int var20 = ttb[var19];
- if (var20 != 0) {
- if (var20 == 1) {
- if (var6 > 12 || var6 < 0) {
- return ScriptRuntime.NaN;
- }
-
- var6 += 12;
- } else if (var20 <= 13) {
- if (var4 >= 0) {
- return ScriptRuntime.NaN;
- }
-
- var4 = var20 - 2;
- } else {
- var13 = (double)(var20 - 10000);
- }
- }
- break;
- }
- }
-
- if (var19 < 0) {
- return ScriptRuntime.NaN;
- }
-
- var15 = 0;
- } else {
- var15 = var9;
- }
- } else {
- for(var12 = var9 - 48; var11 < var16 && '0' <= (var9 = var0.charAt(var11)) && var9 <= '9'; ++var11) {
- var12 = var12 * 10 + var9 - 48;
- }
-
- if (var15 != '+' && var15 != '-') {
- if (var12 < 70 && (var15 != '/' || var4 < 0 || var5 < 0 || var3 >= 0)) {
- if (var9 == ':') {
- if (var6 < 0) {
- var6 = var12;
- } else {
- if (var7 >= 0) {
- return ScriptRuntime.NaN;
- }
-
- var7 = var12;
- }
- } else if (var9 == '/') {
- if (var4 < 0) {
- var4 = var12 - 1;
- } else {
- if (var5 >= 0) {
- return ScriptRuntime.NaN;
- }
-
- var5 = var12;
- }
- } else {
- if (var11 < var16 && var9 != ',' && var9 > ' ' && var9 != '-') {
- return ScriptRuntime.NaN;
- }
-
- if (var17 && var12 < 60) {
- if (var13 < (double)0.0F) {
- var13 -= (double)var12;
- } else {
- var13 += (double)var12;
- }
- } else if (var6 >= 0 && var7 < 0) {
- var7 = var12;
- } else if (var7 >= 0 && var8 < 0) {
- var8 = var12;
- } else {
- if (var5 >= 0) {
- return ScriptRuntime.NaN;
- }
-
- var5 = var12;
- }
- }
- } else {
- if (var3 >= 0) {
- return ScriptRuntime.NaN;
- }
-
- if (var9 > ' ' && var9 != ',' && var9 != '/' && var11 < var16) {
- return ScriptRuntime.NaN;
- }
-
- var3 = var12 < 100 ? var12 + 1900 : var12;
- }
- } else {
- var17 = true;
- if (var12 < 24) {
- var12 *= 60;
- } else {
- var12 = var12 % 100 + var12 / 100 * 60;
- }
-
- if (var15 == '+') {
- var12 = -var12;
- }
-
- if (var13 != (double)0.0F && var13 != (double)-1.0F) {
- return ScriptRuntime.NaN;
- }
-
- var13 = (double)var12;
- }
-
- var15 = 0;
- }
- } else {
- int var18 = 1;
-
- while(var11 < var16) {
- var9 = var0.charAt(var11);
- ++var11;
- if (var9 == '(') {
- ++var18;
- } else if (var9 == ')') {
- --var18;
- if (var18 <= 0) {
- break;
- }
- }
- }
- }
- } else {
- var10 = var0.charAt(var11);
- if (var9 == '-' && '0' <= var10 && var10 <= '9') {
- var15 = var9;
- }
- }
- }
-
- if (var3 >= 0 && var4 >= 0 && var5 >= 0) {
- if (var8 < 0) {
- var8 = 0;
- }
-
- if (var7 < 0) {
- var7 = 0;
- }
-
- if (var6 < 0) {
- var6 = 0;
- }
-
- if (var13 == (double)-1.0F) {
- double var30 = date_msecFromDate((double)var3, (double)var4, (double)var5, (double)var6, (double)var7, (double)var8, (double)0.0F);
- return internalUTC(var30);
- } else {
- double var1 = date_msecFromDate((double)var3, (double)var4, (double)var5, (double)var6, (double)var7, (double)var8, (double)0.0F);
- var1 += var13 * (double)60000.0F;
- return var1;
- }
- } else {
- return ScriptRuntime.NaN;
- }
- }
- }
-
- public String js_toString() {
- return this.date != this.date ? js_NaN_date_str : date_format(this.date);
- }
-
- private static double TimeFromYear(double var0) {
- return DayFromYear(var0) * (double)8.64E7F;
- }
-
- public double jsFunction_getFullYear() {
- return this.date != this.date ? this.date : (double)YearFromTime(LocalTime(this.date));
- }
-
- public static double jsFunction_setFullYear(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeDate(var1, var2, 3, true, var3);
- }
-
- private static NativeDate checkInstance(Scriptable var0, Function var1) {
- if (var0 != null && var0 instanceof NativeDate) {
- return (NativeDate)var0;
- } else {
- Object[] var2 = new Object[]{((NativeFunction)var1).names[0]};
- throw Context.reportRuntimeError(Context.getMessage("msg.incompat.call", var2));
- }
- }
-
- private static double MakeDate(double var0, double var2) {
- return var0 * (double)8.64E7F + var2;
- }
-
- private static double makeDate(Scriptable var0, Object[] var1, int var2, boolean var3, Function var4) {
- double[] var6 = new double[3];
- NativeDate var17 = checkInstance(var0, var4);
- double var18 = var17.date;
- if (var1.length == 0) {
- var1 = ScriptRuntime.padArguments(var1, 1);
- }
-
- int var5 = 0;
-
- while(true) {
- if (var5 < var1.length && var5 < var2) {
- var6[var5] = ScriptRuntime.toNumber(var1[var5]);
- if (var6[var5] == var6[var5] && !Double.isInfinite(var6[var5])) {
- var6[var5] = ScriptRuntime.toInteger(var6[var5]);
- ++var5;
- continue;
- }
-
- var17.date = ScriptRuntime.NaN;
- return var17.date;
- }
-
- double var13;
- if (var18 != var18) {
- if (var1.length < 3) {
- return ScriptRuntime.NaN;
- }
-
- var13 = (double)0.0F;
- } else if (var3) {
- var13 = LocalTime(var18);
- } else {
- var13 = var18;
- }
-
- var5 = 0;
- int var20 = var1.length;
- double var7;
- if (var2 >= 3 && var5 < var20) {
- var7 = var6[var5++];
- } else {
- var7 = (double)YearFromTime(var13);
- }
-
- double var9;
- if (var2 >= 2 && var5 < var20) {
- var9 = var6[var5++];
- } else {
- var9 = (double)MonthFromTime(var13);
- }
-
- double var11;
- if (var2 >= 1 && var5 < var20) {
- var11 = var6[var5++];
- } else {
- var11 = (double)DateFromTime(var13);
- }
-
- var11 = MakeDay(var7, var9, var11);
- double var15 = MakeDate(var11, TimeWithinDay(var13));
- if (var3) {
- var15 = internalUTC(var15);
- }
-
- var18 = TimeClip(var15);
- var17.date = var18;
- return var18;
- }
- }
-
- private static double DayFromYear(double var0) {
- return (double)365.0F * (var0 - (double)1970.0F) + Math.floor((var0 - (double)1969.0F) / (double)4.0F) - Math.floor((var0 - (double)1901.0F) / (double)100.0F) + Math.floor((var0 - (double)1601.0F) / (double)400.0F);
- }
-
- public double jsFunction_getYear() {
- return this.date != this.date ? this.date : (double)(YearFromTime(LocalTime(this.date)) - 1900);
- }
-
- public double jsFunction_getUTCFullYear() {
- return this.date != this.date ? this.date : (double)YearFromTime(this.date);
- }
-
- private static int YearFromTime(double var0) {
- int var2 = (int)Math.floor(var0 / (double)8.64E7F / (double)366.0F) + 1970;
- int var3 = (int)Math.floor(var0 / (double)8.64E7F / (double)365.0F) + 1970;
- if (var3 < var2) {
- int var5 = var2;
- var2 = var3;
- var3 = var5;
- }
-
- while(var3 > var2) {
- int var4 = (var3 + var2) / 2;
- if (TimeFromYear((double)var4) > var0) {
- var3 = var4 - 1;
- } else if (TimeFromYear((double)var4) <= var0) {
- int var6 = var4 + 1;
- if (TimeFromYear((double)var6) > var0) {
- return var4;
- }
-
- var2 = var4 + 1;
- }
- }
-
- return var2;
- }
-
- private static int HourFromTime(double var0) {
- double var2 = Math.floor(var0 / (double)3600000.0F) % (double)24.0F;
- if (var2 < (double)0.0F) {
- var2 += (double)24.0F;
- }
-
- return (int)var2;
- }
-
- private static int MinFromTime(double var0) {
- double var2 = Math.floor(var0 / (double)60000.0F) % (double)60.0F;
- if (var2 < (double)0.0F) {
- var2 += (double)60.0F;
- }
-
- return (int)var2;
- }
-
- private static int SecFromTime(double var0) {
- double var2 = Math.floor(var0 / (double)1000.0F) % (double)60.0F;
- if (var2 < (double)0.0F) {
- var2 += (double)60.0F;
- }
-
- return (int)var2;
- }
-
- public double jsFunction_getTime() {
- return this.date;
- }
-
- public double jsFunction_getUTCSeconds() {
- return this.date != this.date ? this.date : (double)SecFromTime(this.date);
- }
-
- public double jsFunction_getTimezoneOffset() {
- return this.date != this.date ? this.date : (this.date - LocalTime(this.date)) / (double)60000.0F;
- }
-
- public double jsFunction_setTime(double var1) {
- this.date = TimeClip(var1);
- return this.date;
- }
-
- public static double jsFunction_setUTCSeconds(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeTime(var1, var2, 2, false, var3);
- }
-
- public static double jsFunction_setUTCFullYear(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeDate(var1, var2, 3, false, var3);
- }
-
- public double jsFunction_setYear(double var1) {
- if (var1 == var1 && !Double.isInfinite(var1)) {
- if (this.date != this.date) {
- this.date = (double)0.0F;
- }
-
- if (var1 >= (double)0.0F && var1 <= (double)99.0F) {
- var1 += (double)1900.0F;
- }
-
- double var3 = MakeDay(var1, (double)MonthFromTime(this.date), (double)DateFromTime(this.date));
- double var5 = MakeDate(var3, TimeWithinDay(this.date));
- var5 = internalUTC(var5);
- this.date = TimeClip(var5);
- return this.date;
- } else {
- this.date = ScriptRuntime.NaN;
- return this.date;
- }
- }
-
- private static int WeekDay(double var0) {
- double var2 = Day(var0) + (double)4.0F;
- var2 %= (double)7.0F;
- if (var2 < (double)0.0F) {
- var2 += (double)7.0F;
- }
-
- return (int)var2;
- }
-
- private static double Now() {
- return (double)System.currentTimeMillis();
- }
-
- private static double internalUTC(double var0) {
- return var0 - LocalTZA - DaylightSavingTA(var0 - LocalTZA);
- }
-
- public static double UTC(Context var0, Scriptable var1, Object[] var2, Function var3) {
- double[] var4 = new double[7];
- int var5 = 0;
-
- do {
- if (var5 < var2.length) {
- double var6 = ScriptRuntime.toNumber(var2[var5]);
- if (var6 != var6 || Double.isInfinite(var6)) {
- return ScriptRuntime.NaN;
- }
-
- var4[var5] = ScriptRuntime.toInteger(var2[var5]);
- } else {
- var4[var5] = (double)0.0F;
- }
-
- ++var5;
- } while(var5 < 7);
-
- if (var4[0] >= (double)0.0F && var4[0] <= (double)99.0F) {
- var4[0] += (double)1900.0F;
- }
-
- if (var4[2] < (double)1.0F) {
- var4[2] = (double)1.0F;
- }
-
- double var8 = date_msecFromDate(var4[0], var4[1], var4[2], var4[3], var4[4], var4[5], var4[6]);
- var8 = TimeClip(var8);
- return var8;
- }
-
- public double jsFunction_getHours() {
- return this.date != this.date ? this.date : (double)HourFromTime(LocalTime(this.date));
- }
-
- public String js_toUTCString() {
- if (this.date != this.date) {
- return js_NaN_date_str;
- } else {
- StringBuffer var1 = new StringBuffer(60);
- String var2 = Integer.toString(DateFromTime(this.date));
- String var3 = Integer.toString(HourFromTime(this.date));
- String var4 = Integer.toString(MinFromTime(this.date));
- String var5 = Integer.toString(SecFromTime(this.date));
- int var6 = YearFromTime(this.date);
- String var7 = Integer.toString(var6 > 0 ? var6 : -var6);
- var1.append(days[WeekDay(this.date)]);
- var1.append(", ");
- if (var2.length() == 1) {
- var1.append("0");
- }
-
- var1.append(var2);
- var1.append(" ");
- var1.append(months[MonthFromTime(this.date)]);
- if (var6 < 0) {
- var1.append(" -");
- } else {
- var1.append(" ");
- }
-
- for(int var8 = var7.length(); var8 < 4; ++var8) {
- var1.append("0");
- }
-
- var1.append(var7);
- if (var3.length() == 1) {
- var1.append(" 0");
- } else {
- var1.append(" ");
- }
-
- var1.append(var3);
- if (var4.length() == 1) {
- var1.append(":0");
- } else {
- var1.append(":");
- }
-
- var1.append(var4);
- if (var5.length() == 1) {
- var1.append(":0");
- } else {
- var1.append(":");
- }
-
- var1.append(var5);
- var1.append(" GMT");
- return var1.toString();
- }
- }
-
- public static double jsFunction_setHours(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeTime(var1, var2, 4, true, var3);
- }
-
- static {
- LocalTZA = (double)thisTimeZone.getRawOffset();
-
- try {
- Class[] var0 = new Class[]{class$java$lang$String != null ? class$java$lang$String : (class$java$lang$String = class$("java.lang.String"))};
- Object[] var1 = new Object[]{"zzz"};
- Class var2 = Class.forName("java.text.SimpleDateFormat");
- Constructor var3 = var2.getDeclaredConstructor(var0);
- timeZoneFormatter = (DateFormat)var3.newInstance(var1);
- } catch (Exception var4) {
- timeZoneFormatter = null;
- }
-
- localeDateFormatter = DateFormat.getDateTimeInstance(1, 1);
- }
-
- private static boolean date_regionMatches(String var0, int var1, String var2, int var3, int var4) {
- boolean var5 = false;
- int var6 = var0.length();
-
- for(int var7 = var2.length(); var4 > 0 && var1 < var6 && var3 < var7 && Character.toLowerCase(var0.charAt(var1)) == Character.toLowerCase(var2.charAt(var3)); --var4) {
- ++var1;
- ++var3;
- }
-
- if (var4 == 0) {
- var5 = true;
- }
-
- return var5;
- }
-
- private static boolean isFinite(double var0) {
- return var0 == var0 && var0 != Double.POSITIVE_INFINITY && var0 != Double.NEGATIVE_INFINITY;
- }
-
- public double jsFunction_getDate() {
- return this.date != this.date ? this.date : (double)DateFromTime(LocalTime(this.date));
- }
-
- public static double jsFunction_setDate(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeDate(var1, var2, 1, true, var3);
- }
-
- private static double DayFromMonth(int var0, boolean var1) {
- double[] var2 = new double[]{(double)0.0F, (double)31.0F, (double)59.0F, (double)90.0F, (double)120.0F, (double)151.0F, (double)181.0F, (double)212.0F, (double)243.0F, (double)273.0F, (double)304.0F, (double)334.0F};
- double[] var3 = new double[]{(double)0.0F, (double)31.0F, (double)60.0F, (double)91.0F, (double)121.0F, (double)152.0F, (double)182.0F, (double)213.0F, (double)244.0F, (double)274.0F, (double)305.0F, (double)335.0F};
- return var1 ? var3[var0] : var2[var0];
- }
-
- public double jsFunction_getMonth() {
- return this.date != this.date ? this.date : (double)MonthFromTime(LocalTime(this.date));
- }
-
- public static double jsFunction_setMonth(Context var0, Scriptable var1, Object[] var2, Function var3) {
- return makeDate(var1, var2, 2, true, var3);
- }
-
- private static int DateFromTime(double var0) {
- int var2 = DayWithinYear(var0);
- int var4 = 30;
- if (var2 <= 30) {
- return var2 + 1;
- } else {
- int var3 = var4;
- var4 += InLeapYear(var0) ? 29 : 28;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 31;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 30;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 31;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 30;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 31;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 31;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 30;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 31;
- if (var2 <= var4) {
- return var2 - var3;
- } else {
- var3 = var4;
- var4 += 30;
- return var2 <= var4 ? var2 - var3 : var2 - var4;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-