home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / util / SimpleTimeZone.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.4 KB  |  163 lines

  1. package java.util;
  2.  
  3. public class SimpleTimeZone extends TimeZone {
  4.    private int startMonth;
  5.    private int startDay;
  6.    private int startDayOfWeek;
  7.    private int startTime;
  8.    private int endMonth;
  9.    private int endDay;
  10.    private int endDayOfWeek;
  11.    private int endTime;
  12.    private int startYear;
  13.    private int rawOffset;
  14.    private boolean useDaylight = false;
  15.    private static final int millisPerHour = 3600000;
  16.    private final byte[] monthLength = new byte[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  17.  
  18.    public SimpleTimeZone(int var1, String var2) {
  19.       this.rawOffset = var1;
  20.       ((TimeZone)this).setID(var2);
  21.    }
  22.  
  23.    public SimpleTimeZone(int var1, String var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
  24.       ((TimeZone)this).setID(var2);
  25.       this.rawOffset = var1;
  26.       this.startMonth = var3;
  27.       this.startDay = var4;
  28.       this.startTime = var6;
  29.       this.endMonth = var7;
  30.       this.endDay = var8;
  31.       this.endTime = var10;
  32.       this.useDaylight = true;
  33.    }
  34.  
  35.    public void setStartYear(int var1) {
  36.       this.startYear = var1;
  37.       if (!this.useDaylight) {
  38.          this.useDaylight = true;
  39.       }
  40.  
  41.    }
  42.  
  43.    public void setStartRule(int var1, int var2, int var3, int var4) {
  44.       this.startMonth = var1;
  45.       this.startDay = var2;
  46.       this.startDayOfWeek = var3;
  47.       this.startTime = var4;
  48.       if (!this.useDaylight) {
  49.          this.useDaylight = true;
  50.       }
  51.  
  52.    }
  53.  
  54.    public void setEndRule(int var1, int var2, int var3, int var4) {
  55.       this.endMonth = var1;
  56.       this.endDay = var2;
  57.       this.endDayOfWeek = var3;
  58.       this.endTime = var4;
  59.       if (!this.useDaylight) {
  60.          this.useDaylight = true;
  61.       }
  62.  
  63.    }
  64.  
  65.    public int getOffset(int var1, int var2, int var3, int var4, int var5, int var6) {
  66.       int var7 = this.rawOffset;
  67.       if (var3 >= this.startMonth && var3 <= this.endMonth && var2 >= this.startYear && var1 == 1) {
  68.          if (var3 == this.startMonth) {
  69.             int var8;
  70.             if (this.startDay > 0) {
  71.                var8 = 1 + (this.startDay - 1) * 7 + (7 + this.startDayOfWeek - (var5 - var4 + 1)) % 7;
  72.             } else {
  73.                var8 = this.monthLength[var3] + (this.startDay + 1) * 7 - (7 + (var5 + this.monthLength[var3] - var4) - this.startDayOfWeek) % 7;
  74.             }
  75.  
  76.             if (var4 > var8 || var4 == var8 && var6 >= this.startTime) {
  77.                var7 += 3600000;
  78.             }
  79.          } else if (var3 == this.endMonth) {
  80.             int var9;
  81.             if (this.endDay > 0) {
  82.                var9 = 1 + (this.endDay - 1) * 7 + (7 + this.endDayOfWeek - (var5 - var4 + 1)) % 7;
  83.             } else {
  84.                var9 = this.monthLength[var3] + (this.endDay + 1) * 7 - (7 + (var5 + this.monthLength[var3] - var4) - this.endDayOfWeek) % 7;
  85.             }
  86.  
  87.             if (var4 < var9 || var4 == var9 && var6 < this.endTime) {
  88.                var7 += 3600000;
  89.             }
  90.          } else {
  91.             var7 += 3600000;
  92.          }
  93.  
  94.          return var7;
  95.       } else {
  96.          return var7;
  97.       }
  98.    }
  99.  
  100.    public int getRawOffset() {
  101.       return this.rawOffset;
  102.    }
  103.  
  104.    public void setRawOffset(int var1) {
  105.       this.rawOffset = var1;
  106.    }
  107.  
  108.    public boolean useDaylightTime() {
  109.       return this.useDaylight;
  110.    }
  111.  
  112.    public boolean inDaylightTime(Date var1) {
  113.       GregorianCalendar var2 = new GregorianCalendar();
  114.       ((Calendar)var2).setTime(var1);
  115.       return this.getRawOffset() != this.getOffset(1, ((Calendar)var2).get(1), ((Calendar)var2).get(2), ((Calendar)var2).get(5), ((Calendar)var2).get(7), 0);
  116.    }
  117.  
  118.    public Object clone() {
  119.       return (SimpleTimeZone)super.clone();
  120.    }
  121.  
  122.    public synchronized int hashCode() {
  123.       return this.startMonth ^ this.startDay ^ this.startDayOfWeek ^ this.startTime ^ this.endMonth ^ this.endDay ^ this.endDayOfWeek ^ this.endTime ^ this.rawOffset;
  124.    }
  125.  
  126.    public boolean equals(Object var1) {
  127.       if (this == var1) {
  128.          return true;
  129.       } else if (!(var1 instanceof SimpleTimeZone)) {
  130.          return false;
  131.       } else {
  132.          SimpleTimeZone var2 = (SimpleTimeZone)var1;
  133.          if (this.hashCode() != var2.hashCode()) {
  134.             return false;
  135.          } else if (!((TimeZone)this).getID().equals(((TimeZone)var2).getID())) {
  136.             return false;
  137.          } else if (this.startMonth != var2.startMonth) {
  138.             return false;
  139.          } else if (this.startDay != var2.startDay) {
  140.             return false;
  141.          } else if (this.startDayOfWeek != var2.startDayOfWeek) {
  142.             return false;
  143.          } else if (this.startTime != var2.startTime) {
  144.             return false;
  145.          } else if (this.endMonth != var2.endMonth) {
  146.             return false;
  147.          } else if (this.endDay != var2.endDay) {
  148.             return false;
  149.          } else if (this.endDayOfWeek != var2.endDayOfWeek) {
  150.             return false;
  151.          } else if (this.endTime != var2.endTime) {
  152.             return false;
  153.          } else if (this.startYear != var2.startYear) {
  154.             return false;
  155.          } else if (this.rawOffset != var2.rawOffset) {
  156.             return false;
  157.          } else {
  158.             return this.useDaylight == var2.useDaylight;
  159.          }
  160.       }
  161.    }
  162. }
  163.