Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

514
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda