Kotlin:
Porównywanie dwóch dat

Jak to zrobić?

import java.time.LocalDate

fun main() {
    val date1 = LocalDate.of(2023, 4, 1)
    val date2 = LocalDate.of(2023, 5, 1)

    println(date1.isBefore(date2))  // Wynik: true
    println(date1.isAfter(date2))   // Wynik: false
    println(date1.isEqual(date2))   // Wynik: false
}

Kod wykorzystuje LocalDate z pakietu java.time i trzy metody: isBefore(), isAfter() oraz isEqual(), by określić stosunek dat do siebie.

Głębsze spojrzenie

Porównywanie dat nie zawsze było takie proste. W przeszłości programiści musieli polegać na bibliotekach zewnętrznych lub własnych algorytmach. Java 8 wprowadziła pakiet java.time, oferując uproszczenia, w tym LocalDate. Alternatywy jak Joda-Time są nadal popularne, lecz nie zawsze potrzebne z nowym API.

Zaimplementowanie porównywania dat obejmuje wiele przypadków — strefy czasowe, lata przestępne itp. LocalDate porównuje wyłącznie daty, nie czas i strefę, co może być zaletą lub ograniczeniem, w zależności od kontekstu.

Zobacz też