# How to calculate difference between two dates in Java

On this page, we are going to calculate the difference between two dates. Sometimes we have a requirement in our project to process the calculation or update any page on the differences of date.

Here we are going to discuss a simple scenario where we need to calculate the difference between two dates. Suppose retrieve the recode form table and display it on JSP and comes in tabular form and have a date column. Mark entire those row where difference btw date column in table and current is greater than seven.

Now we are going to use TimeUnit class of `java.util.concurrent` package. A TimeUnit represents time durations at a given unit of granularity and provides utility methods to convert across units and to perform timing and delay operations in these units. TimeUnit class available since `JDK 1.5`.

### Calculation with TimeUnit class

DateDiffExp1.java
``````package org.websparrow;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

public class DateDiffExp1 {
public static void main(String[] args) {
// set the new date format
DateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");

Date currentDate = new Date();

Date date1 = null;
Date date2 = null;

try {
// calculating the difference b/w startDate and endDate
String startDate = "01-01-2016";
String endDate = simpleDateFormat.format(currentDate);

date1 = simpleDateFormat.parse(startDate);
date2 = simpleDateFormat.parse(endDate);

long getDiff = date2.getTime() - date1.getTime();

// using TimeUnit class from java.util.concurrent package
long getDaysDiff = TimeUnit.MILLISECONDS.toDays(getDiff);

System.out.println("Differance between date " + startDate + " and " + endDate + " is " + getDaysDiff + " days.");
} catch (Exception e) {
e.printStackTrace();
}
}
}``````

Output:

``Differance between date 01-01-2016 and 26-12-2016 is 360 days.``

### Manual calculation

In this example, we are going to calculate the date difference using manual calculation. Before calculating manually these units must be known.

A nanosecond is defined as one thousandth of a microsecond, a microsecond as one thousandth of a millisecond, a millisecond as one thousandth of a second, a minute as sixty seconds, an hour as sixty minutes, and a day as twenty four hours.

24 hours = 1 day

60 minutes = 1 hour

60 seconds = 1 minute

1000 milliseconds = 1 second

DateDiffExp.java
``````package org.websparrow;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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

DateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");

Date currentDate = new Date();
Date date1 = null;
Date date2 = null;

try {
String startDate = "01-01-2016";
String endDate = simpleDateFormat.format(currentDate);

date1 = simpleDateFormat.parse(startDate);
date2 = simpleDateFormat.parse(endDate);

long getDiff = date2.getTime() - date1.getTime();

long getDaysDiff = getDiff / (24 * 60 * 60 * 1000);

System.out.println("Differance between date " + startDate + " and " + endDate + " is " + getDaysDiff + " days.");
} catch (Exception e) {
e.printStackTrace();
}
}

}``````

Output:

``Differance between date 01-01-2016 and 26-12-2016 is 360 days.``