Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8359859

Calendar.roll(DAY_OF_WEEK) incorrectly changes year across boundaries

XMLWordPrintable

      A DESCRIPTION OF THE PROBLEM :
      GregorianCalendar.roll(Calendar.DAY_OF_WEEK, true) incorrectly modifies the year field when rolling from Saturday to Sunday across year boundaries, violating the documented behavior that roll() should not change larger fields.


      ---------- BEGIN SOURCE ----------
      import java.util.Calendar;
      import java.util.GregorianCalendar;

      public class RollTest {
          public static void main(String args[]) {
              Calendar cal = new GregorianCalendar();
              cal.set(2020, Calendar.JANUARY, 4);
              System.out.println("Before roll: " + cal.getTime() + ", Year: " + cal.get(Calendar.YEAR));
              cal.roll(Calendar.DAY_OF_WEEK, 1);
              System.out.println("After roll: " + cal.getTime() + ", Year: " + cal.get(Calendar.YEAR));
          }
      }

      ---------- END SOURCE ----------

            naoto Naoto Sato
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: