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