Имея Instant
, я бы сначала преобразовал его в дату:
val date = LocalDateTime.ofInstant(instant, ZoneId.systemDefault())
Тогда иди с
YearMonth.from(date).atEndOfMonth().get(ChronoField.ALIGNED_WEEK_OF_MONTH)
или
YearMonth.from(date).atEndOfMonth().get(WeekFields.ISO.weekOfMonth())
Полный пример:
fun getTotalWeeksInMonth(instant: Instant): Int {
val date = LocalDateTime.ofInstant(instant, ZoneId.systemDefault())
return YearMonth.from(date).atEndOfMonth().get(ChronoField.ALIGNED_WEEK_OF_MONTH)
}