home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 25 / CDROM25.iso / Share / prog / VJ11 / VJTRIAL.EXE / IE30Java.exe / classd.exe / java / util / Date.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-01-27  |  4.5 KB  |  410 lines

  1. package java.util;
  2.  
  3. public class Date {
  4.    private long value;
  5.    private boolean valueValid;
  6.    private boolean expanded;
  7.    private short tm_millis;
  8.    private byte tm_sec;
  9.    private byte tm_min;
  10.    private byte tm_hour;
  11.    private byte tm_mday;
  12.    private byte tm_mon;
  13.    private byte tm_wday;
  14.    private short tm_yday;
  15.    private int tm_year;
  16.    private int tm_isdst;
  17.    private static short[] monthOffset = new short[]{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
  18.    private static final 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"};
  19.    private static final 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};
  20.  
  21.    public Date() {
  22.       this(System.currentTimeMillis());
  23.    }
  24.  
  25.    public Date(long var1) {
  26.       this.value = var1;
  27.       this.valueValid = true;
  28.       this.expanded = false;
  29.    }
  30.  
  31.    public Date(int var1, int var2, int var3) {
  32.       this(var1, var2, var3, 0, 0, 0);
  33.    }
  34.  
  35.    public Date(int var1, int var2, int var3, int var4, int var5) {
  36.       this(var1, var2, var3, var4, var5, 0);
  37.    }
  38.  
  39.    public Date(int var1, int var2, int var3, int var4, int var5, int var6) {
  40.       this.expanded = true;
  41.       this.valueValid = false;
  42.       this.tm_millis = 0;
  43.       this.tm_sec = (byte)var6;
  44.       this.tm_min = (byte)var5;
  45.       this.tm_hour = (byte)var4;
  46.       this.tm_mday = (byte)var3;
  47.       this.tm_mon = (byte)var2;
  48.       this.tm_wday = 0;
  49.       this.tm_yday = 0;
  50.       this.tm_year = var1;
  51.       this.computeValue();
  52.       this.expand();
  53.    }
  54.  
  55.    public native String toGMTString();
  56.  
  57.    public boolean equals(Object var1) {
  58.       return var1 != null && var1 instanceof Date && this.getTime() == ((Date)var1).getTime();
  59.    }
  60.  
  61.    public int getMonth() {
  62.       if (!this.expanded) {
  63.          this.expand();
  64.       }
  65.  
  66.       return this.tm_mon;
  67.    }
  68.  
  69.    public void setMonth(int var1) {
  70.       if (!this.expanded) {
  71.          this.expand();
  72.       }
  73.  
  74.       this.tm_mon = (byte)var1;
  75.       this.valueValid = false;
  76.    }
  77.  
  78.    public boolean after(Date var1) {
  79.       return this.getTime() > var1.getTime();
  80.    }
  81.  
  82.    public boolean before(Date var1) {
  83.       return this.getTime() < var1.getTime();
  84.    }
  85.  
  86.    public int getSeconds() {
  87.       if (!this.expanded) {
  88.          this.expand();
  89.       }
  90.  
  91.       return this.tm_sec;
  92.    }
  93.  
  94.    public void setSeconds(int var1) {
  95.       if (!this.expanded) {
  96.          this.expand();
  97.       }
  98.  
  99.       this.tm_sec = (byte)var1;
  100.       this.valueValid = false;
  101.    }
  102.  
  103.    public int getDay() {
  104.       if (!this.expanded) {
  105.          this.expand();
  106.       } else if (this.tm_wday < 0 || !this.valueValid) {
  107.          this.computeValue();
  108.          this.expand();
  109.       }
  110.  
  111.       return this.tm_wday;
  112.    }
  113.  
  114.    public long getTime() {
  115.       if (!this.valueValid) {
  116.          this.computeValue();
  117.       }
  118.  
  119.       return this.value;
  120.    }
  121.  
  122.    public void setTime(long var1) {
  123.       this.value = var1;
  124.       this.valueValid = true;
  125.       this.expanded = false;
  126.    }
  127.  
  128.    public static long UTC(int var0, int var1, int var2, int var3, int var4, int var5) {
  129.       long var6 = (long)(var2 + monthOffset[var1] + ((var0 & 3) == 0 && (var0 % 100 != 0 || (var0 + 300) % 400 == 0) && var1 >= 2 ? 0 : -1)) + (long)(var0 - 70) * 365L + (long)((var0 - 69) / 4) - (long)((var0 - 1) / 100) + (long)((var0 + 299) / 400);
  130.       return (long)((var5 + 60 * (var4 + 60 * var3)) * 1000) + 86400000L * var6;
  131.    }
  132.  
  133.    public native String toLocaleString();
  134.  
  135.    public int getYear() {
  136.       if (!this.expanded) {
  137.          this.expand();
  138.       }
  139.  
  140.       return this.tm_year;
  141.    }
  142.  
  143.    public void setYear(int var1) {
  144.       if (!this.expanded) {
  145.          this.expand();
  146.       }
  147.  
  148.       this.tm_year = var1;
  149.       this.valueValid = false;
  150.    }
  151.  
  152.    public int hashCode() {
  153.       long var1 = this.getTime();
  154.       return (int)var1 ^ (int)(var1 >> 32);
  155.    }
  156.  
  157.    public int getMinutes() {
  158.       if (!this.expanded) {
  159.          this.expand();
  160.       }
  161.  
  162.       return this.tm_min;
  163.    }
  164.  
  165.    public void setMinutes(int var1) {
  166.       if (!this.expanded) {
  167.          this.expand();
  168.       }
  169.  
  170.       this.tm_min = (byte)var1;
  171.       this.valueValid = false;
  172.    }
  173.  
  174.    public static long parse(String var0) {
  175.       int var1 = -1;
  176.       byte var2 = -1;
  177.       byte var3 = -1;
  178.       int var4 = -1;
  179.       byte var5 = -1;
  180.       byte var6 = -1;
  181.       char var7 = '\uffff';
  182.       int var8 = 0;
  183.       int var9 = -1;
  184.       int var10 = -1;
  185.       char var11 = 0;
  186.       if (var0 != null) {
  187.          int var12 = var0.length();
  188.  
  189.          while(true) {
  190.             if (var8 >= var12) {
  191.                if (var1 >= 0 && var2 >= 0 && var3 >= 0) {
  192.                   if (var6 < 0) {
  193.                      var6 = 0;
  194.                   }
  195.  
  196.                   if (var5 < 0) {
  197.                      var5 = 0;
  198.                   }
  199.  
  200.                   if (var4 < 0) {
  201.                      var4 = 0;
  202.                   }
  203.  
  204.                   if (var10 == -1) {
  205.                      return (new Date(var1, var2, var3, var4, var5, var6)).getTime();
  206.                   }
  207.  
  208.                   return UTC(var1, var2, var3, var4, var5, var6) + (long)(var10 * '\uea60');
  209.                }
  210.                break;
  211.             }
  212.  
  213.             var7 = var0.charAt(var8);
  214.             ++var8;
  215.             if (var7 > ' ' && var7 != ',' && var7 != '-') {
  216.                if (var7 == '(') {
  217.                   int var22 = 1;
  218.  
  219.                   while(var8 < var12) {
  220.                      var7 = var0.charAt(var8);
  221.                      ++var8;
  222.                      if (var7 == '(') {
  223.                         ++var22;
  224.                      } else if (var7 == ')') {
  225.                         --var22;
  226.                         if (var22 <= 0) {
  227.                            break;
  228.                         }
  229.                      }
  230.                   }
  231.                } else if ('0' <= var7 && var7 <= '9') {
  232.                   for(var9 = var7 - 48; var8 < var12 && '0' <= (var7 = var0.charAt(var8)) && var7 <= '9'; ++var8) {
  233.                      var9 = var9 * 10 + var7 - 48;
  234.                   }
  235.  
  236.                   if (var11 != '+' && (var11 != '-' || var1 < 0)) {
  237.                      if (var9 >= 70) {
  238.                         if (var1 >= 0 || var7 > ' ' && var7 != ',' && var7 != '/' && var8 < var12) {
  239.                            break;
  240.                         }
  241.  
  242.                         var1 = var9 < 1900 ? var9 : var9 - 1900;
  243.                      } else if (var7 == ':') {
  244.                         if (var4 < 0) {
  245.                            var4 = (byte)var9;
  246.                         } else {
  247.                            if (var5 >= 0) {
  248.                               break;
  249.                            }
  250.  
  251.                            var5 = (byte)var9;
  252.                         }
  253.                      } else if (var7 == '/') {
  254.                         if (var2 < 0) {
  255.                            var2 = (byte)(var9 - 1);
  256.                         } else {
  257.                            if (var3 >= 0) {
  258.                               break;
  259.                            }
  260.  
  261.                            var3 = (byte)var9;
  262.                         }
  263.                      } else {
  264.                         if (var8 < var12 && var7 != ',' && var7 > ' ' && var7 != '-') {
  265.                            break;
  266.                         }
  267.  
  268.                         if (var4 >= 0 && var5 < 0) {
  269.                            var5 = (byte)var9;
  270.                         } else if (var5 >= 0 && var6 < 0) {
  271.                            var6 = (byte)var9;
  272.                         } else {
  273.                            if (var3 >= 0) {
  274.                               break;
  275.                            }
  276.  
  277.                            var3 = (byte)var9;
  278.                         }
  279.                      }
  280.                   } else {
  281.                      if (var9 < 24) {
  282.                         var9 *= 60;
  283.                      } else {
  284.                         var9 = var9 % 100 + var9 / 100 * 60;
  285.                      }
  286.  
  287.                      if (var11 == '+') {
  288.                         var9 = -var9;
  289.                      }
  290.  
  291.                      if (var10 != 0 && var10 != -1) {
  292.                         break;
  293.                      }
  294.  
  295.                      var10 = var9;
  296.                   }
  297.  
  298.                   var11 = 0;
  299.                } else if (var7 != '/' && var7 != ':' && var7 != '+' && var7 != '-') {
  300.                   int var13;
  301.                   for(var13 = var8 - 1; var8 < var12; ++var8) {
  302.                      var7 = var0.charAt(var8);
  303.                      if (('A' > var7 || var7 > 'Z') && ('a' > var7 || var7 > 'z')) {
  304.                         break;
  305.                      }
  306.                   }
  307.  
  308.                   if (var8 <= var13 + 1) {
  309.                      break;
  310.                   }
  311.  
  312.                   int var14 = wtb.length;
  313.  
  314.                   while(true) {
  315.                      --var14;
  316.                      if (var14 < 0) {
  317.                         break;
  318.                      }
  319.  
  320.                      if (wtb[var14].regionMatches(true, 0, var0, var13, var8 - var13)) {
  321.                         int var15 = ttb[var14];
  322.                         if (var15 != 0) {
  323.                            if (var15 == 1) {
  324.                               if (var4 > 12 || var4 < 0) {
  325.                                  throw new IllegalArgumentException();
  326.                               }
  327.  
  328.                               var4 += 12;
  329.                            } else if (var15 <= 13) {
  330.                               if (var2 >= 0) {
  331.                                  throw new IllegalArgumentException();
  332.                               }
  333.  
  334.                               var2 = (byte)(var15 - 2);
  335.                            } else {
  336.                               var10 = var15 - 10000;
  337.                            }
  338.                         }
  339.                         break;
  340.                      }
  341.                   }
  342.  
  343.                   if (var14 < 0) {
  344.                      break;
  345.                   }
  346.  
  347.                   var11 = 0;
  348.                } else {
  349.                   var11 = var7;
  350.                }
  351.             }
  352.          }
  353.       }
  354.  
  355.       throw new IllegalArgumentException();
  356.    }
  357.  
  358.    public int getTimezoneOffset() {
  359.       if (!this.expanded) {
  360.          this.expand();
  361.       }
  362.  
  363.       return (int)((this.getTime() - UTC(this.tm_year, this.tm_mon, this.tm_mday, this.tm_hour, this.tm_min, this.tm_sec)) / 60000L);
  364.    }
  365.  
  366.    public int getHours() {
  367.       if (!this.expanded) {
  368.          this.expand();
  369.       }
  370.  
  371.       return this.tm_hour;
  372.    }
  373.  
  374.    public void setHours(int var1) {
  375.       if (!this.expanded) {
  376.          this.expand();
  377.       }
  378.  
  379.       this.tm_hour = (byte)var1;
  380.       this.valueValid = false;
  381.    }
  382.  
  383.    private native void computeValue();
  384.  
  385.    public Date(String var1) {
  386.       this(parse(var1));
  387.    }
  388.  
  389.    public int getDate() {
  390.       if (!this.expanded) {
  391.          this.expand();
  392.       }
  393.  
  394.       return this.tm_mday;
  395.    }
  396.  
  397.    public void setDate(int var1) {
  398.       if (!this.expanded) {
  399.          this.expand();
  400.       }
  401.  
  402.       this.tm_mday = (byte)var1;
  403.       this.valueValid = false;
  404.    }
  405.  
  406.    private native void expand();
  407.  
  408.    public native String toString();
  409. }
  410.