// The developer is not responsible for the mess created by this code.
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class DateDiffTest {
public static void main(String[] args) {
String dateString = "07/17/1982";
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
try {
Date d1 = sdf.parse(dateString);
Date d2 = new Date();
System.out.println(dateDiff(d1, d2) +" days");
} catch (Exception exception) {
exception.printStackTrace();
}
}
// Returns difference in days.
public static int dateDiff(Date date1, Date date2) {
int count = 0;
int diff = 0;
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
if (date1.compareTo(date2) < 0) {
cal1.setTime(date1);
cal2.setTime(date2);
} else {
cal1.setTime(date2);
cal2.setTime(date1);
}
while (cal1.get(Calendar.YEAR) != cal2.get(Calendar.YEAR)) {
count = 365 * (cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR));
diff += count;
cal1.add(Calendar.DAY_OF_YEAR, count);
}
if (cal1.get(Calendar.DAY_OF_YEAR) != cal2.get(Calendar.DAY_OF_YEAR))
{
count = cal2.get(Calendar.DAY_OF_YEAR) - cal1.get(Calendar.DAY_OF_YEAR);
diff += count;
cal1.add(Calendar.DAY_OF_YEAR, count);
}
return diff;
}
}
Cheers!
Rich.