Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

518
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!