diff options
author | Jerry Quinn <jlquinn@gcc.gnu.org> | 2004-05-07 04:18:19 +0000 |
---|---|---|
committer | Jerry Quinn <jlquinn@gcc.gnu.org> | 2004-05-07 04:18:19 +0000 |
commit | c37cc018f074e5e07cf3325925f295de4dae7f1b (patch) | |
tree | 4e749b7520d0384f198f66837b8b0c6fd3eb9094 /libjava/java/util/Calendar.java | |
parent | 4d980568a69e67a741059678e512dd30b779977a (diff) | |
download | gcc-c37cc018f074e5e07cf3325925f295de4dae7f1b.zip gcc-c37cc018f074e5e07cf3325925f295de4dae7f1b.tar.gz gcc-c37cc018f074e5e07cf3325925f295de4dae7f1b.tar.bz2 |
ChangeLog
From-SVN: r81604
Diffstat (limited to 'libjava/java/util/Calendar.java')
-rw-r--r-- | libjava/java/util/Calendar.java | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/libjava/java/util/Calendar.java b/libjava/java/util/Calendar.java index 2a1e1d8..11b0aac 100644 --- a/libjava/java/util/Calendar.java +++ b/libjava/java/util/Calendar.java @@ -926,8 +926,21 @@ public abstract class Calendar implements Serializable, Cloneable * @return the actual minimum value. * @since jdk1.2 */ - // FIXME: XXX: Not abstract in JDK 1.2. - public abstract int getActualMinimum(int field); + public int getActualMinimum(int field) + { + Calendar tmp = (Calendar)clone(); // To avoid restoring state + int min = tmp.getGreatestMinimum(field); + int end = tmp.getMinimum(field); + tmp.set(field, min); + for (; min > end; min--) + { + tmp.add(field, -1); // Try to get smaller + if (tmp.get(field) != min - 1) + break; // Done if not successful + + } + return min; + } /** * Gets the actual maximum value that is allowed for the specified field. @@ -936,8 +949,20 @@ public abstract class Calendar implements Serializable, Cloneable * @return the actual maximum value. * @since jdk1.2 */ - // FIXME: XXX: Not abstract in JDK 1.2. - public abstract int getActualMaximum(int field); + public int getActualMaximum(int field) + { + Calendar tmp = (Calendar)clone(); // To avoid restoring state + int max = tmp.getLeastMaximum(field); + int end = tmp.getMaximum(field); + tmp.set(field, max); + for (; max < end; max++) + { + tmp.add(field, 1); + if (tmp.get(field) != max + 1) + break; + } + return max; + } /** * Return a clone of this object. |