aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/util/Calendar.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@gcc.gnu.org>2005-11-16 19:43:53 +0000
committerMark Wielaard <mark@gcc.gnu.org>2005-11-16 19:43:53 +0000
commit46f32b2b9096aef6888b3a1882d88467b845e5fe (patch)
tree67bb5a1de4af3deef7413170ad72219a4af856aa /libjava/java/util/Calendar.java
parentab156144da05dcb8df7fb55a10e937a17372f6a7 (diff)
downloadgcc-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.java25
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;
}
/**