Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

515
Visualizações
API de fecha de Java 8: obtenga el número total de semanas en un mes

Tengo una función de Kotlin para obtener el número total de semanas en un mes.

Código

 fun getTotalWeeksInMonth(instant: Instant): Int { val calendar = Calendar.getInstance() calendar.time = Date.from(instant) return calendar.getActualMaximum(Calendar.WEEK_OF_MONTH) }

Sin embargo, esto está utilizando una combinación de las antiguas API de fecha/hora de Java ( Date y Calendar ) y las nuevas API ( Instant )

¿Cómo lograría el mismo resultado usando solo las nuevas API?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puedes probar algo como este par de líneas:

 YearMonth currentYearMonth = YearMonth.now( ZoneId.systemDefault() ) ; int weeks = currentYearMonth .atEndOfMonth() .get( WeekFields.ISO.weekOfMonth() ) ;
over 4 years ago · Santiago Trujillo Relatório

0

Puede evaluar la "semana del mes" del último día de este mes, en java:

 static int getTotalWeeksInMonth(Instant instant) { LocalDate localDate = LocalDate.ofInstant(instant, ZoneId.systemDefault()); LocalDate lastDayOfMonth = localDate.withDayOfMonth(localDate.lengthOfMonth()); int lastWeekOfMonth = lastDayOfMonth.get(WeekFields.ISO.weekOfMonth()); return lastWeekOfMonth; }
over 4 years ago · Santiago Trujillo Relatório

0

Vea si esto le conviene, tenga cuidado con la Zone por la que realmente está pasando y con WeekFields.ISO , en algunas regiones puede funcionar bien, pero en otras puede que no:

 Instant now = Instant.now(); ZonedDateTime zonedNow = now.atZone(ZoneId.systemDefault()); ZonedDateTime monthEnd = zonedNow.with(TemporalAdjusters.lastDayOfMonth()); System.out.println(monthEnd.get(WeekFields.ISO.weekOfMonth()));
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda