Kotlin:
Comparando duas datas

Como Fazer:

import java.time.LocalDate

fun main() {
    val data1 = LocalDate.of(2023, 3, 10)
    val data2 = LocalDate.now() // Suponha que hoje é 2023-03-15

    println("Data1 é antes de Data2? ${data1.isBefore(data2)}") // Saída: Data1 é antes de Data2? true
    println("Data1 é após Data2? ${data1.isAfter(data2)}") // Saída: Data1 é após Data2? false
    println("Data1 é igual a Data2? ${data1.isEqual(data2)}") // Saída: Data1 é igual a Data2? false
}

Mergulho Profundo

Historicamente, comparar datas no Java e Kotlin era complicado e propenso a erros com as antigas Date e Calendar. Com o Java 8, surgiu a java.time API, trazendo mais clareza e funcionalidade. No Kotlin, permanecemos com essa API devido à sua robustez e facilidade. Comparar datas pode ser tão simples quanto usar isBefore(), isAfter() e isEqual(), mas cada uma delas serve a um propósito. É importante entender que o cálculo de diferenças precisa considerar fusos horários e ajustes em anos bissextos, algo que java.time maneja bem.

Alternativas incluem bibliotecas de terceiros como Joda-Time, mas sua necessidade diminuiu desde que ‘java.time’ se tornou padrão. Implementações personalizadas deveriam ser evitadas a não ser que haja um motivo muito específico, já que manipular datas e horas manualmente é complexo e sujeito a falhas.

Veja Também