Java.util.GregorianCalendar.roll() Method



The java.util.GregorianCalendar.roll(int field,int amount) method adds a signed amount to the specified calendar field without changing larger fields. A negative roll amount means to subtract from field without changing larger fields. If the specified amount is 0, this method performs nothing.


Following is the declaration for java.util.GregorianCalendar.roll() method

public void roll(int field,int amount)


  • field − the calendar field.

  • amount − the signed amount to add to field.

Return Value

This method does not return a value.


IllegalArgumentException − if field is ZONE_OFFSET, DST_OFFSET, or unknown, or if any calendar fields have out-of-range values in non-lenient mode.


The following example shows the usage of java.util.GregorianCalendar.roll() method.

Live Demo
package com.tutorialspoint;

import java.util.*;

public class GregorianCalendarDemo {
   public static void main(String[] args) {

      // create a new calendar
      GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance();

      // print the current date and time
      System.out.println("" + cal.getTime());

      // roll 2 months
      cal.roll(GregorianCalendar.MONTH, 2);
      System.out.println("Date:" + cal.getTime());

      // roll 5 year backwards
      cal.roll(GregorianCalendar.YEAR, -5);
      System.out.println("Date:" + cal.getTime());

Let us compile and run the above program, this will produce the following result −

Fri May 18 13:36:46 EEST 2012
Date:Wed Jul 18 13:36:46 EEST 2012
Date:Wed Jul 18 13:36:46 EEST 2007


E-Books Store