On many occasions we need to check if two calendar objects or Date are on the same day ignoring time while writing programs in Java. 29 Apr 2002 13:40 and 29 Apr 2002 08:01 would return true while 29 Apr 2002 13:40 and 19 Apr 2002 08:01 would return false. This can be done using following functions.
public static boolean isSameDay(Calendar cal1, Calendar cal2) {
if (cal1 == null || cal2 == null) {
throw new IllegalArgumentException("The date must not be null");
}
return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA)
&& cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && cal1
.get(Calendar.DAY_OF_YEAR) == cal2
.get(Calendar.DAY_OF_YEAR));
}
public static boolean isSameDay(Date date1, Date date2) {
if (date1 == null || date2 == null) {
throw new IllegalArgumentException("The date must not be null");
}
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
return isSameDay(cal1, cal2);
}
public static boolean isSameDay(Date date1, Calendar cal1) {
if (date1 == null || cal1 == null) {
throw new IllegalArgumentException("The date must not be null");
}
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date1);
return isSameDay(cal1, cal2);
}
Using above functions you can check day equality between two Calendar objects, two Date objects or One Calendar object and one two Date object
