home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / rt.jar / java / util / Date.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-19  |  7.8 KB  |  456 lines

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