Should I use Calendar.compareTo() to compare dates?

calendar, date, java

Solution

Date implements comparable itself so there's no reason to wrap it into calendar:

Calendar someCalendar1 = Calendar.getInstance(); // current date/time
someCalendar1.add(Calendar.DATE, -14);

if (someDate.compareTo(someCalendar1.getTime()) < 0) {
   ...Code...                           
}

Date also has convenient after() and before() methods that make the above comparison easier to read:

if (someDate.before(someCalendar1.getTime())) {
   ...Code...                           
}

Finally, if you're dealing with date / time a lot, do consider using Joda Time instead of built-in java classes. It's MUCH more convenient and functional:

DateTime dt = new DateTime().minusWeeks(2);
if (new DateTime(someDate).isBefore(dt)) {
   ...Code...                           
}

Problem

Is it a valid way of comparing dates: ``` Calendar someCalendar1 = Calendar.getInstance(); // current date/time someCalendar1.add(Calendar.DATE, -14); Calendar someCalendar2 = Calendar.getInstance(); someCalendar2.setTime(someDate); // someDate is in the format of MM/dd/yyyy if(someCalendar2.compareTo(someCalendar1) < 0){ ...Code... } ``` ...or is there a better approach?

Original source