Conseguir el número de la semana para una fecha (la semana que comienza el miércoles)

Mahendra:
LocalDate initial = LocalDate.now();
DayOfWeek dayOfWeek = DayOfWeek.WEDNESDAY;
WeekFields weekFields = WeekFields.of(dayOfWeek, 1);
int weekNo = date.get(weekFields.weekOfWeekBasedYear());
System.out.println("Week No"+weekNo);

Estoy utilizando el código de fecha 07/29/2018. Espero que la semana hay 30, pero me da 31.

Lo que me estoy perdiendo aquí para obtener el resultado de 30?

Tomasz Linkowski:

Si se espera que la producción ya que, según la norma ISO-8601 , donde la semana actual es la semana 30 , que había necesidad de seguir esta:

Número de la semana de acuerdo a la norma ISO-8601, semana a partir del lunes. La primera semana del año es la semana en que haya primer jueves de ese año (= 'Primera 4 días de la semana').

Esto se implementa WeekFields.ISO.

Si por el contrario, desea que la semana para empezar en WEDNESDAY, sólo se necesita cambiar el minimalDaysInFirstWeekde 1a 4(= 'Primera 4 días de la semana'):

LocalDate date = LocalDate.now();
WeekFields weekFields = WeekFields.of(DayOfWeek.WEDNESDAY, 4);
int weekNo = date.get(weekFields.weekOfWeekBasedYear());
System.out.println("Week No " + weekNo);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=189668&siteId=1
Recomendado
Clasificación