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