diff options
author | Mark Wielaard <mark@gcc.gnu.org> | 2005-11-16 19:43:53 +0000 |
---|---|---|
committer | Mark Wielaard <mark@gcc.gnu.org> | 2005-11-16 19:43:53 +0000 |
commit | 46f32b2b9096aef6888b3a1882d88467b845e5fe (patch) | |
tree | 67bb5a1de4af3deef7413170ad72219a4af856aa /libjava/java/util/Calendar.java | |
parent | ab156144da05dcb8df7fb55a10e937a17372f6a7 (diff) | |
download | gcc-46f32b2b9096aef6888b3a1882d88467b845e5fe.zip gcc-46f32b2b9096aef6888b3a1882d88467b845e5fe.tar.gz gcc-46f32b2b9096aef6888b3a1882d88467b845e5fe.tar.bz2 |
[multiple changes]
2005-11-15 Tom Tromey <tromey@redhat.com>
classpath/23890:
* java/util/Calendar.java (equals): Include other calendar
attributes.
(hashCode): Updated.
* java/util/GregorianCalendar.java (hashCode): New method.
(equals): Use super.equals().
2005-11-15 Sven de Marothy <sven@physto.se>
* java/util/Calendar (setTimeInMillis): Recompute time fields.
2005-11-15 Mark Wielaard <mark@klomp.org>
* java/util/SimpleTimeZone.java: Removed, fully merged now.
* java/util/Date.java: Likewise.
* sources.am: Regenerated.
* Makefile.in: Regenerated.
2005-11-15 David Gilbert <david.gilbert@object-refinery.com>
* java/util/Calendar.java: fixed minor problems in API docs,
* java/util/Date.java: likewise,
* java/util/ResourceBundle.java: likewise,
* java/util/SimpleTimeZone.java: likewise,
From-SVN: r107094
Diffstat (limited to 'libjava/java/util/Calendar.java')
-rw-r--r-- | libjava/java/util/Calendar.java | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/libjava/java/util/Calendar.java b/libjava/java/util/Calendar.java index 51a923f..5559d8c 100644 --- a/libjava/java/util/Calendar.java +++ b/libjava/java/util/Calendar.java @@ -629,6 +629,7 @@ public abstract class Calendar implements Serializable, Cloneable clear(); this.time = time; isTimeSet = true; + computeFields(); } /** @@ -879,7 +880,6 @@ public abstract class Calendar implements Serializable, Cloneable /** * Fills any unset fields in the time field list - * @return true if the specified field has a value. */ protected void complete() { @@ -897,8 +897,19 @@ public abstract class Calendar implements Serializable, Cloneable */ public boolean equals(Object o) { - return (o instanceof Calendar) - && getTimeInMillis() == ((Calendar) o).getTimeInMillis(); + if (! (o instanceof Calendar)) + return false; + Calendar cal = (Calendar) o; + if (getTimeInMillis() == ((Calendar) o).getTimeInMillis() + && cal.getFirstDayOfWeek() == getFirstDayOfWeek() + && cal.isLenient() == isLenient() + && cal.getMinimalDaysInFirstWeek() == getMinimalDaysInFirstWeek()) + { + TimeZone self = getTimeZone(); + TimeZone oth = cal.getTimeZone(); + return self == null ? oth == null : self.equals(oth); + } + return false; } /** @@ -909,7 +920,13 @@ public abstract class Calendar implements Serializable, Cloneable public int hashCode() { long time = getTimeInMillis(); - return (int) ((time & 0xffffffffL) ^ (time >> 32)); + int val = (int) ((time & 0xffffffffL) ^ (time >> 32)); + val += (getFirstDayOfWeek() + (isLenient() ? 1230 : 1237) + + getMinimalDaysInFirstWeek()); + TimeZone self = getTimeZone(); + if (self != null) + val ^= self.hashCode(); + return val; } /** |