Kotlin:
Calcul d'une date future ou passée
How to: (Comment faire :)
Kotlin rend ce calcul super simple avec LocalDateTime
et Duration
de la bibliothèque java.time
. Voici comment :
import java.time.LocalDateTime
import java.time.temporal.ChronoUnit
fun main() {
val now = LocalDateTime.now()
println("Now: $now")
// Ajouter 10 jours
val tenDaysLater = now.plusDays(10)
println("10 days later: $tenDaysLater")
// Retirer 3 semaines
val threeWeeksEarlier = now.minusWeeks(3)
println("3 weeks earlier: $threeWeeksEarlier")
// Calculer une date précise dans le futur, par exemple 2 ans, 1 mois et 5 jours plus tard
val specificFutureDate = now.plusYears(2).plusMonths(1).plusDays(5)
println("Specific future date: $specificFutureDate")
// Utiliser ChronoUnit pour ajouter des heures
val inFiveHours = now.plus(5, ChronoUnit.HOURS)
println("In five hours: $inFiveHours")
}
Sample output:
Now: 2023-04-12T15:37:52.042
10 days later: 2023-04-22T15:37:52.042
3 weeks earlier: 2023-03-22T15:37:52.042
Specific future date: 2025-05-17T15:37:52.042
In five hours: 2023-04-12T20:37:52.042
Deep Dive (Plongée Profonde)
Avant java.time
, Java utilisait Date
et Calendar
qui étaient difficiles à comprendre et à utiliser. java.time
est plus intutitif et puissant. Cela fait partie de Joda-Time, une bibliothèque externe, qui a inspiré sa création.
En Kotlin, on pourrait aussi utiliser Anko, une bibliothèque qui étend les capacités d’Android, ou des fonctions d’extension pour rendre le code encore plus lisible.
Pour la performance et l’immuabilité, LocalDateTime
est génial, car les instances sont immuables : lorsqu’on ajuste la date/heure, une nouvelle instance est créée.