sistema - edad a partir de fecha de nacimiento java
Usando Joda, ¿cómo puedo determinar si una fecha dada es entre el tiempo x y una hora 3 horas antes que x? (2)
¿Cuál es la forma más sencilla de usar el tiempo de Joda y obtener algo como el siguiente comportamiento:
public boolean check( DateTime checkTime )
{
DateTime someTime = new DateTime(); //set to "now" for sake of example
return checkTime.isBefore( someTime ) && checkTime.notMoreThanThreeHoursBefore( someTime );
}
Por lo tanto, si someTime se establece en 15:00 y checkTime se configura en 12:15, debe devolver verdadero.
Si someTime se establece en 15:00 y checkTime se configura en 11:45, debería devolver falso porque checkTime es más de 3 horas antes que en someTime .
Si someTime se establece en 15:00 y checkTime se establece en 15:15, debería devolver falso porque checkTime es posterior a someTime .
Después de jugar un poco, encontré esto que se lee muy bien:
return new Interval( someTime.minusHours( 3 ), someTime ).contains( checkTime );
Fácil:
DateTime someTime = new DateTime();
DateTime earliest = someTime.minusHours(3);
if (earliest.compareTo(checkTime) <= 0 && checkTime.compareTo(someTime) < 0)
He usado compareTo ya que no hay isBeforeOrEqual o isAfterOrEqual , pero puedes usar compareTo para cualquier relación.
Sospecho que fue solo minusHours que minusHours aunque :)