Получите неделю года в Котлине

Чтобы получить неделю года в Котлине, вы можете использовать различные методы. Вот несколько примеров:

Метод 1. Использование класса Calendar

import java.util.*
fun getWeekOfYearUsingCalendar(): Int {
    val calendar = Calendar.getInstance()
    calendar.firstDayOfWeek = Calendar.MONDAY
    calendar.minimalDaysInFirstWeek = 4
    calendar.time = Date()
    return calendar[Calendar.WEEK_OF_YEAR]
}
val weekOfYear = getWeekOfYearUsingCalendar()
println("Week of the year: $weekOfYear")

Метод 2: использование класса java.time.LocalDate (доступно начиная с Java 8)

import java.time.LocalDate
import java.time.temporal.WeekFields
import java.util.*
fun getWeekOfYearUsingLocalDate(): Int {
    val today = LocalDate.now()
    val weekFields = WeekFields.of(Locale.getDefault())
    return today.get(weekFields.weekOfWeekBasedYear())
}
val weekOfYear = getWeekOfYearUsingLocalDate()
println("Week of the year: $weekOfYear")

Метод 3. Использование класса java.time.ZonedDateTime (доступен начиная с Java 8)

import java.time.ZonedDateTime
import java.time.temporal.WeekFields
import java.util.*
fun getWeekOfYearUsingZonedDateTime(): Int {
    val now = ZonedDateTime.now()
    val weekFields = WeekFields.of(Locale.getDefault())
    return now.get(weekFields.weekOfWeekBasedYear())
}
val weekOfYear = getWeekOfYearUsingZonedDateTime()
println("Week of the year: $weekOfYear")

Метод 4. Использование класса java.util.Calendar (не рекомендуется в Java 8 и более поздних версиях, но все еще работает)

import java.util.*
fun getWeekOfYearUsingLegacyCalendar(): Int {
    val calendar = Calendar.getInstance()
    calendar.firstDayOfWeek = Calendar.MONDAY
    calendar.minimalDaysInFirstWeek = 4
    calendar.time = Date()
    return calendar[Calendar.WEEK_OF_YEAR]
}
val weekOfYear = getWeekOfYearUsingLegacyCalendar()
println("Week of the year: $weekOfYear")