¿Cuál es una expresión de prueba eficiente y fácil de leer si LocalDate dayX cae en una duración que se describe con un día de inicio LocalDate day0 y una longitud Period length ?
Actualmente estoy haciendo así:
boolean match = !day0.isAfter(dayX) && day0.plus(length).isAfter(dayX); Siento que esto parece un poco tonto y cada vez que lo leo, mi cerebro tarda varios segundos en saber si los límites son correctos. Así que estoy buscando una forma más inteligente que tal vez involucre las clases de Duration o Interval .
Lo que está haciendo es correcto (excepto que necesita usar el método before para la primera condición). Tal vez pueda envolverlo en un método y llamarlo para que sea reutilizable y se vea más elegante, por ejemplo:
public boolean isInRange(Localdate start, Period period, Localdate target){ return !target.before(start) && !target.after(start.plus(period)); }Enfoque algo similar: día0 < díax < (día0 + período)
boolean match = (dayx.isAfter(day0) && dayx.isBefore(day0.plus(length));