modules java8 java datetime java-8 java-time

java8 - Encuentre la siguiente ocurrencia de un día de la semana en JSR-310



jackson jsr310 (1)

La respuesta depende de tu definición de "próximo miércoles" ;-)

JSR-310 proporciona dos opciones usando la clase TemporalAdjusters .

La primera opción es next () :

LocalDate input = LocalDate.now(); LocalDate nextWed = input.with(TemporalAdjusters.next(DayOfWeek.WEDNESDAY));

La segunda opción es nextOrSame () :

LocalDate input = LocalDate.now(); LocalDate nextWed = input.with(TemporalAdjusters.nextOrSame(DayOfWeek.WEDNESDAY));

Los dos difieren dependiendo de qué día de la semana sea la fecha de entrada.

Si la fecha de entrada es 2014-01-22 (un miércoles), entonces:

  • next() volverá 2014-01-29, una semana después
  • nextOrSame() devolverá 2014-01-22, lo mismo que la entrada

Si la fecha de entrada es 2014-01-20 (un lunes), entonces:

  • next() volverá 2014-01-22
  • nextOrSame() volverá 2014-01-22

es decir. next() siempre devuelve una fecha posterior, mientras que nextOrSame() devolverá la fecha de entrada si coincide.

Tenga en cuenta que ambas opciones se ven mucho mejor con las importaciones estáticas:

LocalDate nextWed1 = input.with(next(WEDNESDAY)); LocalDate nextWed2 = input.with(nextOrSame(WEDNESDAY));

TemporalAdjusters también incluye los métodos previous() y previousOrSame() .

Dado un objeto JSR-310, como LocalDate , ¿cómo puedo encontrar la fecha del próximo miércoles (o cualquier otro día de la semana?

LocalDate today = LocalDate.now(); LocalDate nextWed = ???