From b9f065bedac5d0493ca2e8a24d081a6e594cb497 Mon Sep 17 00:00:00 2001 From: Jerry Quinn Date: Thu, 27 May 2004 20:32:20 +0000 Subject: [PATCH] SimpleTimeZone.java: Reverting my last change until I can fix it properly. 2004-05-27 Jerry Quinn * java/util/SimpleTimeZone.java: Reverting my last change until I can fix it properly. From-SVN: r82340 --- libjava/ChangeLog | 5 +++ libjava/java/util/SimpleTimeZone.java | 54 +++++++++------------------ 2 files changed, 23 insertions(+), 36 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 7bbe7305f01..a4124d49e0a 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2004-05-27 Jerry Quinn + + * java/util/SimpleTimeZone.java: Reverting my last change until I + can fix it properly. + 2004-05-27 Michael Koch * javax/swing/JPopupMenu.java diff --git a/libjava/java/util/SimpleTimeZone.java b/libjava/java/util/SimpleTimeZone.java index 2d92e31b576..71f92e88f34 100644 --- a/libjava/java/util/SimpleTimeZone.java +++ b/libjava/java/util/SimpleTimeZone.java @@ -234,7 +234,7 @@ public class SimpleTimeZone extends TimeZone * @serial * @since JDK1.1.4 */ - private int serialVersionOnStream = 2; + private int serialVersionOnStream = 1; private static final long serialVersionUID = -403250971215465050L; @@ -477,7 +477,9 @@ public class SimpleTimeZone extends TimeZone { this.startMode = checkRule(month, day, dayOfWeek); this.startMonth = month; - this.startDay = day; + // FIXME: XXX: JDK 1.2 allows negative values and has 2 new variations + // of this method. + this.startDay = Math.abs(day); this.startDayOfWeek = Math.abs(dayOfWeek); if (this.startTimeMode == WALL_TIME || this.startTimeMode == STANDARD_TIME) this.startTime = time; @@ -568,7 +570,9 @@ public class SimpleTimeZone extends TimeZone { this.endMode = checkRule(month, day, dayOfWeek); this.endMonth = month; - this.endDay = day; + // FIXME: XXX: JDK 1.2 allows negative values and has 2 new variations + // of this method. + this.endDay = Math.abs(day); this.endDayOfWeek = Math.abs(dayOfWeek); if (this.endTimeMode == WALL_TIME) this.endTime = time; @@ -656,33 +660,21 @@ public class SimpleTimeZone extends TimeZone * offset = cal.get(Calendar.ZONE_OFFSET) * + cal.get(Calendar.DST_OFFSET); * - * This version doesn't suffer this inaccuracy. + * You could also use in * - * The arguments don't follow the approach for setting start and end rules. - * The day must be a positive number and dayOfWeek must be a positive value - * from Calendar. dayOfWeek is redundant, but must match the other values - * or an inaccurate result may be returned. + * This version doesn't suffer this inaccuracy. * * @param era the era of the given date * @param year the year of the given date * @param month the month of the given date, 0 for January. * @param day the day of month - * @param dayOfWeek the day of week; this must match the other fields. + * @param dayOfWeek the day of week; this must be matching the + * other fields. * @param millis the millis in the day (in local standard time) - * @return the time zone offset in milliseconds. - * @throws IllegalArgumentException if arguments are incorrect. - */ + * @return the time zone offset in milliseconds. */ public int getOffset(int era, int year, int month, int day, int dayOfWeek, int millis) { - int daysInMonth = getDaysInMonth(month, 1); - if (day < 1 || day > daysInMonth) - throw new IllegalArgumentException("day out of range"); - if (dayOfWeek < Calendar.SUNDAY || dayOfWeek > Calendar.SATURDAY) - throw new IllegalArgumentException("dayOfWeek out of range"); - if (month < Calendar.JANUARY || month > Calendar.DECEMBER) - throw new IllegalArgumentException("month out of range"); - // This method is called by Calendar, so we mustn't use that class. int daylightSavings = 0; if (useDaylight && era == GregorianCalendar.AD && year >= startYear) @@ -793,7 +785,7 @@ public class SimpleTimeZone extends TimeZone /** * Checks if the date given in calXXXX, is before the change between * dst and standard time. - * @param calYear the year of the date to check (for leap day checking). + * @param calYear the year of the date to check (for leap day cheking). * @param calMonth the month of the date to check. * @param calDay the day of month of the date to check. * @param calDayOfWeek the day of week of the date to check. @@ -878,7 +870,7 @@ public class SimpleTimeZone extends TimeZone case DOW_LE_DOM_MODE: // The greatest sunday before or equal December, 12 // is the same as smallest sunday after or equal December, 6. - day = Math.abs(day) - 6; + day -= 6; case DOW_GE_DOM_MODE: @@ -939,12 +931,10 @@ public class SimpleTimeZone extends TimeZone && startDay == zone.startDay && startDayOfWeek == zone.startDayOfWeek && startTime == zone.startTime - && startTimeMode == zone.startTimeMode && endMonth == zone.endMonth && endDay == zone.endDay && endDayOfWeek == zone.endDayOfWeek - && endTime == zone.endTime - && endTimeMode == zone.endTimeMode); + && endTime == zone.endTime); } /** @@ -972,12 +962,9 @@ public class SimpleTimeZone extends TimeZone && startDay == zone.startDay && startDayOfWeek == zone.startDayOfWeek && startTime == zone.startTime - && startTimeMode == zone.startTimeMode && endMonth == zone.endMonth && endDay == zone.endDay - && endDayOfWeek == zone.endDayOfWeek - && endTime == zone.endTime - && endTimeMode == zone.endTimeMode); + && endDayOfWeek == zone.endDayOfWeek && endTime == zone.endTime); } /** @@ -1000,14 +987,11 @@ public class SimpleTimeZone extends TimeZone + ",startDay=" + startDay + ",startDayOfWeek=" + startDayOfWeek + ",startTime=" + startTime - + ",startTimeMode=" + startTimeMode + ",endMode=" + endMode + ",endMonth=" + endMonth + ",endDay=" + endDay + ",endDayOfWeek=" + endDayOfWeek - + ",endTime=" + endTime - + ",endTimeMode=" + endTimeMode - : "") + "]"; + + ",endTime=" + endTime : "") + "]"; } /** @@ -1024,9 +1008,7 @@ public class SimpleTimeZone extends TimeZone dstSavings = 60 * 60 * 1000; endMode = DOW_IN_MONTH_MODE; startMode = DOW_IN_MONTH_MODE; - startTimeMode = WALL_TIME; - endTimeMode = WALL_TIME; - serialVersionOnStream = 2; + serialVersionOnStream = 1; } else { -- 2.30.2