How do I add or subtract a date?

The java.util.Calendar allows us to do a date arithmetic function such as add or subtract a unit of time to the specified date field.

The method that done this process is the Calendar.add(int field, int amount). Where the value of the field can be Calendar.DATE, Calendar.MONTH, Calendar.YEAR. So this mean if you want to subtract in days, months or years use Calendar.DATE, Calendar.MONTH or Calendar.YEAR respectively.

package org.kodejava.example.util;

import java.util.Calendar;

public class CalendarAddExample {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();

        System.out.println("Today : " + cal.getTime());

        // Subtract 30 days from the calendar
        cal.add(Calendar.DATE, -30);
        System.out.println("30 days ago: " + cal.getTime());

        // Add 10 months to the calendar
        cal.add(Calendar.MONTH, 10);
        System.out.println("10 months later: " + cal.getTime());

        // Subtract 1 year from the calendar
        cal.add(Calendar.YEAR, -1);
        System.out.println("1 year ago: " + cal.getTime());

In the code above we want to know what is the date back to 30 days ago. The sample result of the code is shown below:

Today : Sun Sep 17 07:24:29 WITA 2017
30 days ago: Fri Aug 18 07:24:29 WITA 2017
10 months later: Mon Jun 18 07:24:29 WITA 2018
1 year ago: Sun Jun 18 07:24:29 WITA 2017


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.