Calendar
Add/Subtract Months from Date with Calendar
With this example we are going to demonstrate how to add and subtract Months from a Date using the Calendar class, that allows us to convert between a specific instant in time and a set of calendar fields such as YEAR, MONTH, DAY_OF_MONTH, HOUR. In short, to add and subtract Months from a Date using the Calendar class you should:
- Create a new Calendar object, using
getInstance()API method of Calendar, that gets a calendar using the default time zone and locale. - Use
add(int field, int amount)API method of Calendar to add an int amount of time to the given calendar field, that isCalendar.MONTH. - Use
add(int field, int amount)API method of Calendar again, this time to subtract an int amount of time to the given calendar field, that isCalendar.MONTH. - We can get the time that this calendar object represents every time that it is changed , using
get(int field)API method, withCalendar.MONTH,Calendar.DATEandCalendar.YEARas fields. Every time after the calendar is changed, the values for theMONTHandYEARfields will be different.
Let’s take a look at the code snippet that follows:
package com.javacodegeeks.snippets.core;
import java.util.Calendar;
public class AddSubtractDateMonths {
public static void main(String[] args) {
int monthsToAdd = 4;
int monthsToSubtract = 10;
Calendar c = Calendar.getInstance();
System.out.println("Current date : " + (c.get(Calendar.MONTH) + 1) +
"-" + c.get(Calendar.DATE) + "-" + c.get(Calendar.YEAR));
// add months to current date
c.add(Calendar.MONTH, monthsToAdd);
System.out.println("Date (after): " + (c.get(Calendar.MONTH) + 1) +
"-" + c.get(Calendar.DATE) + "-" + c.get(Calendar.YEAR));
c = Calendar.getInstance();
c.add(Calendar.MONTH, -monthsToSubtract);
System.out.println("Date (before): " + (c.get(Calendar.MONTH) + 1) +
"-" + c.get(Calendar.DATE) + "-" + c.get(Calendar.YEAR));
}
}Output:
Current date : 10-19-2011 Date (after): 2-19-2012 Date (before): 12-19-2010
This was an example of how to add and subtract Months from a Date using the Calendar class in Java.

