From c37cc018f074e5e07cf3325925f295de4dae7f1b Mon Sep 17 00:00:00 2001 From: Jerry Quinn Date: Fri, 7 May 2004 04:18:19 +0000 Subject: [PATCH] ChangeLog From-SVN: r81604 --- libjava/java/util/Calendar.java | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/libjava/java/util/Calendar.java b/libjava/java/util/Calendar.java index 2a1e1d8b707..11b0aacf940 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. -- 2.30.2