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 :)