Расчет даты в будущем или прошлом

Kotlin:
Расчет даты в будущем или прошлом

Как это сделать:

Kotlin работает с датами и временем с помощью библиотеки java.time. Чтобы добавить или вычесть дни, используйте plusDays() или minusDays(). Вот краткое руководство:

import java.time.LocalDate

fun main() {
    val today = LocalDate.now()
    val tenDaysLater = today.plusDays(10)
    val tenDaysBefore = today.minusDays(10)
    
    println("Сегодня: $today")
    println("Через десять дней: $tenDaysLater")
    println("Десять дней назад: $tenDaysBefore")
}

Пример вывода:

Сегодня: 2023-03-15
Через десять дней: 2023-03-25
Десять дней назад: 2023-03-05

Помимо дней, вы также можете играть с месяцами и годами (plusMonths(), minusMonths(), plusYears(), minusYears()).

Подробнее

Расчёт дат не новинка. С Java 8 пакет java.time стал основным средством для арифметики даты и времени — гораздо лучше, чем старые Calendar или Date, которые были громоздкими и не потокобезопасными.

java.time использует неизменяемые объекты, так что вы избегаете неприятных ошибок из-за случайного изменения ваших дат. Объекты вроде LocalDate, LocalTime, LocalDateTime и ZonedDateTime помогают точно представлять различные аспекты времени.

Альтернативы? Конечно. Перед java.time Joda-Time был предпочтительным инструментом. Некоторые старые системы до сих пор используют его. И в сфере Android библиотека ThreeTenABP адаптирует функции java.time для совместимости с Java 6 & 7.

API java.time также разработано с учётом часовых поясов, благодаря классам вроде ZonedDateTime. Так что, когда вы манипулируете датами, вы можете учитывать хронологию вращения Земли.

Смотрите также

  • Официальная документация java.time: Java SE Date Time
  • Для разработчиков Android, подробности библиотеки ThreeTenABP: ThreeTenABP на GitHub
  • Подробное руководство, если вы хотите узнать больше о датах и времени: Дата и Время в Java