una sistema rango persona partir nacimiento hora fechas fecha edad con comparar calcular java jodatime

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