Kotlin:
Comparer deux dates
Comment faire :
import java.time.LocalDate
fun main() {
val date1 = LocalDate.of(2023, 4, 1)
val date2 = LocalDate.now()
println(date1.compareTo(date2)) // Avant aujourd'hui : -1, après : 1, même jour : 0
println(date1.isBefore(date2)) // true si date1 est avant date2
println(date1.isAfter(date2)) // true si date1 est après date2
println(date1.isEqual(date2)) // true si les deux dates sont les mêmes
}
// Exemple de sortie:
// -1
// true
// false
// false
Plongée profonde :
Historiquement en Java, les dates étaient gérées par java.util.Date
, mais cette classe avait des problèmes : difficile à utiliser et pas thread-safe. Depuis Java 8, java.time.LocalDate
est le choix préféré pour les dates sans horaires. Comparer deux LocalDate
se fait facilement grâce à compareTo
, isBefore
, isAfter
, et isEqual
. Ces méthodes suivent la norme ISO-8601 et prennent en compte les années bissextiles. Autrement, des bibliothèques comme Joda-Time offraient ces fonctionnalités, mais elles sont maintenant moins utilisées grâce à java.time
.