Estoy teniendo problemas para encontrar un puesto donde la solución es algo más que
Obtener diferencia días y se divide por 7
Estoy mirando para conseguir la diferencia en la semana del calendario entre dos fechas, en los que las semanas comienzan los lunes.
Por ejemplo, el número de semanas entre el 4 de Nov, 2019 y Nov 10mo, 2019 debe ser 0.
Sin embargo, el número de semanas entre noviembre décimo, Nov 2019 y 11ª, 2019 debe ser 1.
La solución también debe tener en cuenta las fechas en diferentes años. Cualquier solución que el uso LocalDate
?
ChronoUnit
s tienen un between
método que devuelve el número de unidades completas entre un comienzo y al final de fecha / hora. Para contar semana de lunes a domingo, se puede redondear hacia abajo "" fechas al lunes anterior. En su caso podría tener este aspecto:
LocalDate start = LocalDate.of(2019, 11, 10);
LocalDate end = LocalDate.of(2019, 11, 11);
LocalDate mondayStart = start.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
LocalDate mondayEnd = end.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
System.out.println(ChronoUnit.WEEKS.between(mondayStart, mondayEnd));