ChangeLog
authorJerry Quinn <jlquinn@gcc.gnu.org>
Fri, 7 May 2004 04:18:19 +0000 (04:18 +0000)
committerJerry Quinn <jlquinn@gcc.gnu.org>
Fri, 7 May 2004 04:18:19 +0000 (04:18 +0000)
From-SVN: r81604

libjava/java/util/Calendar.java

index 2a1e1d8b70777c6f77203424248ddb48acb6e768..11b0aacf940ce769b348b35b4b5b63f9fbb4a179 100644 (file)
@@ -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.