Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

For all those who want to calculate date difference!

807597Jan 18 2005 — edited Jan 19 2005
// 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.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 16 2005
Added on Jan 18 2005
24 comments
250 views