I made this method in order for me to determine if a java.util.Date falls in between 2 java.util.Date objects. I used Calendar objects to wrap the Date objects as they are much easier to use and retrieve month, day and year infos. Another helper method called isDateEqual is used within the isWithinDateRange method to determine if both Date objects are equal (excluding the time).
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
public static boolean isWithinDateRange(Date dateToSearch, Date startdate, Date enddate) { Calendar calstart = Calendar.getInstance(); calstart.setTime(startdate); calstart.set(Calendar.HOUR, 0); calstart.set(Calendar.MINUTE, 0); calstart.set(Calendar.SECOND, 0); Calendar calend = Calendar.getInstance(); calend.setTime(enddate); calend.set(Calendar.HOUR, 0); calend.set(Calendar.MINUTE, 0); calend.set(Calendar.SECOND, 0); Calendar calsearch = Calendar.getInstance(); calsearch.setTime(dateToSearch); calsearch.set(Calendar.HOUR, 0); calsearch.set(Calendar.MINUTE, 0); calsearch.set(Calendar.SECOND, 0); if (((isDateEqual(calstart.getTime(), calsearch.getTime())) || (calstart.getTime().before(calsearch.getTime()))) && ((isDateEqual(calend.getTime(), calsearch.getTime())) || (calend.getTime().after(calsearch.getTime())))) return true; else return false; } public static boolean isDateEqual(Date date1, Date date2) { Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1); cal2.setTime(date2); if ((cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH)) && (cal1.get(Calendar.DATE) == cal2.get(Calendar.DATE)) && (cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR))) return true; else return false; } |
recontribution:
return !(dateToSearch.before(startdate) || dateToSearch.after(enddate));
and you can remove the last method