¿Cómo puedo comparar fechas intermedias en Java?
Ejemplo:
date1 es 22-02-2010
date2 es 07-04-2010
hoy
la fecha3 es 25-12-2010
.
La fecha3
es siempre mayor que la fecha1
y la fecha2
es siempre hoy. ¿Cómo puedo verificar si la fecha de hoy está entre la fecha1 y la fecha 3?
La fecha tiene métodos antes y después y se pueden comparar entre sí de la siguiente manera:
if(todayDate.after(historyDate) && todayDate.before(futureDate)) {
// In between
}
Para una comparación inclusiva:
if(!historyDate.after(todayDate) && !futureDate.before(todayDate)) {
/* historyDate <= todayDate <= futureDate */
}
También puedes probar con Joda-Time, pero ten en cuenta que:
Joda-Time es la biblioteca de fecha y hora estándar de facto para Java antes de Java SE 8. Ahora se pide a los usuarios que migren a java.time (JSR-310).
Hay back-ports disponibles para Java 6 y 7, así como para Android.
Compara las dos fechas:
Date today = new Date();
Date myDate = new Date(today.getYear(),today.getMonth()-1,today.getDay());
System.out.println("My Date is"+myDate);
System.out.println("Today Date is"+today);
if (today.compareTo(myDate)<0)
System.out.println("Today Date is Lesser than my Date");
else if (today.compareTo(myDate)>0)
System.out.println("Today Date is Greater than my date");
else
System.out.println("Both Dates are equal");