Java Program to Add Two Dates

In this program, you'll learn to add two dates in Java using Calendar.

Since, Java epoch is 1970, any time represented in a Date object will not work. This means, your Dates will start from 1970 and when two Date objects are added, the sum misses by about 1970 years. So, we use Calendar instead.

Example: Add Two Dates

import java.util.Calendar;

public class AddDates {

    public static void main(String[] args) {

        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        Calendar cTotal = (Calendar) c1.clone();

        cTotal.add(Calendar.YEAR, c2.get(Calendar.YEAR));
        cTotal.add(Calendar.MONTH, c2.get(Calendar.MONTH) + 1); // Zero-based months
        cTotal.add(Calendar.DATE, c2.get(Calendar.DATE));
        cTotal.add(Calendar.HOUR_OF_DAY, c2.get(Calendar.HOUR_OF_DAY));
        cTotal.add(Calendar.MINUTE, c2.get(Calendar.MINUTE));
        cTotal.add(Calendar.SECOND, c2.get(Calendar.SECOND));
        cTotal.add(Calendar.MILLISECOND, c2.get(Calendar.MILLISECOND));

        System.out.format("%s + %s = %s", c1.getTime(), c2.getTime(), cTotal.getTime());


When you run the program, the output will be:

Tue Aug 08 10:20:56 NPT 2017 + Tue Aug 08 10:20:56 NPT 2017 = Mon Apr 16 20:41:53 NPT 4035

In the above program, c1 and c2 stores the current date. Then, we simply clone c1 and add c2's each DateTime properties one after the other.

As you can see, we've added 1 to the months. This is because, months start with 0 in Java.

Alternatively, you can also use Joda for time/date operations in Java.