home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.IOException;
- import java.io.ObjectInputStream;
-
- public class SimpleTimeZone extends TimeZone {
- private int startMonth;
- private int startDay;
- private int startDayOfWeek;
- private int startTime;
- private int endMonth;
- private int endDay;
- private int endDayOfWeek;
- private int endTime;
- private int startYear;
- private int rawOffset;
- private boolean useDaylight = false;
- private static final int millisPerHour = 3600000;
- private final byte[] monthLength;
- private static final byte[] staticMonthLength = new byte[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- static final long serialVersionUID = -403250971215465050L;
-
- public SimpleTimeZone(int var1, String var2) {
- this.monthLength = staticMonthLength;
- this.rawOffset = var1;
- ((TimeZone)this).setID(var2);
- }
-
- public SimpleTimeZone(int var1, String var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) {
- this.monthLength = staticMonthLength;
- ((TimeZone)this).setID(var2);
- this.rawOffset = var1;
- this.startMonth = var3;
- this.startDay = var4;
- this.startDayOfWeek = var5;
- this.startTime = var6;
- this.endMonth = var7;
- this.endDay = var8;
- this.endDayOfWeek = var9;
- this.endTime = var10;
- this.useDaylight = true;
- }
-
- public void setStartYear(int var1) {
- this.startYear = var1;
- this.useDaylight = true;
- }
-
- public void setStartRule(int var1, int var2, int var3, int var4) {
- this.startMonth = var1;
- this.startDay = var2;
- this.startDayOfWeek = var3;
- this.startTime = var4;
- this.useDaylight = true;
- }
-
- public void setEndRule(int var1, int var2, int var3, int var4) {
- this.endMonth = var1;
- this.endDay = var2;
- this.endDayOfWeek = var3;
- this.endTime = var4;
- this.useDaylight = true;
- }
-
- public int getOffset(int var1, int var2, int var3, int var4, int var5, int var6) {
- int var7 = this.rawOffset;
- if (var2 >= this.startYear && var1 == 1) {
- boolean var8 = this.startMonth > this.endMonth;
- int var9 = compareToRule(var3, var4, var5, var6, this.startMonth, this.startDayOfWeek, this.startDay, this.startTime);
- int var10 = compareToRule(var3, var4, var5, var6 + 3600000, this.endMonth, this.endDayOfWeek, this.endDay, this.endTime);
- if (!var8 && var9 >= 0 && var10 < 0 || var8 && (var9 >= 0 || var10 < 0)) {
- var7 += 3600000;
- }
-
- return var7;
- } else {
- return var7;
- }
- }
-
- private static int compareToRule(int var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
- if (var0 < var4) {
- return -1;
- } else if (var0 > var4) {
- return 1;
- } else {
- byte var8 = staticMonthLength[var0];
- int var9;
- if (var6 > 0) {
- var9 = 1 + (var6 - 1) * 7 + (7 + var5 - (var2 - var1 + 1)) % 7;
- } else {
- var9 = var8 + (var6 + 1) * 7 - (7 + (var2 + var8 - var1) - var5) % 7;
- }
-
- if (var1 < var9) {
- return -1;
- } else if (var1 > var9) {
- return 1;
- } else if (var3 < var7) {
- return -1;
- } else {
- return var3 > var7 ? 1 : 0;
- }
- }
- }
-
- public int getRawOffset() {
- return this.rawOffset;
- }
-
- public void setRawOffset(int var1) {
- this.rawOffset = var1;
- }
-
- public boolean useDaylightTime() {
- return this.useDaylight;
- }
-
- public boolean inDaylightTime(Date var1) {
- GregorianCalendar var2 = new GregorianCalendar(this);
- ((Calendar)var2).setTime(var1);
- return var2.inDaylightTime();
- }
-
- public Object clone() {
- return super.clone();
- }
-
- public synchronized int hashCode() {
- return this.startMonth ^ this.startDay ^ this.startDayOfWeek ^ this.startTime ^ this.endMonth ^ this.endDay ^ this.endDayOfWeek ^ this.endTime ^ this.rawOffset;
- }
-
- public boolean equals(Object var1) {
- if (this == var1) {
- return true;
- } else if (!(var1 instanceof SimpleTimeZone)) {
- return false;
- } else {
- SimpleTimeZone var2 = (SimpleTimeZone)var1;
- if (!((TimeZone)this).getID().equals(((TimeZone)var2).getID())) {
- return false;
- } else if (this.startMonth != var2.startMonth) {
- return false;
- } else if (this.startDay != var2.startDay) {
- return false;
- } else if (this.startDayOfWeek != var2.startDayOfWeek) {
- return false;
- } else if (this.startTime != var2.startTime) {
- return false;
- } else if (this.endMonth != var2.endMonth) {
- return false;
- } else if (this.endDay != var2.endDay) {
- return false;
- } else if (this.endDayOfWeek != var2.endDayOfWeek) {
- return false;
- } else if (this.endTime != var2.endTime) {
- return false;
- } else if (this.startYear != var2.startYear) {
- return false;
- } else if (this.rawOffset != var2.rawOffset) {
- return false;
- } else {
- return this.useDaylight == var2.useDaylight;
- }
- }
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- var1.defaultReadObject();
- if (this.startDayOfWeek == 0) {
- this.startDayOfWeek = 1;
- }
-
- if (this.endDayOfWeek == 0) {
- this.endDayOfWeek = 1;
- }
-
- }
- }
-