C#:
Comparando duas datas

Como Fazer:

using System;

class Program
{
    static void Main()
    {
        DateTime data1 = new DateTime(2023, 4, 1);
        DateTime data2 = DateTime.Now;

        int resultado = DateTime.Compare(data1, data2);

        if(resultado < 0)
        {
            Console.WriteLine("A data1 é anterior à data2.");
        }
        else if(resultado == 0)
        {
            Console.WriteLine("As datas são iguais.");
        }else
        {
            Console.WriteLine("A data1 é posterior à data2.");
        }
    }
}

Saída esperada (dependendo do momento de execução):

A data1 é anterior à data2.

Aprofundando

No início da computação, comparar datas não era tão trivial como é hoje. Falhas como o Problema do Ano 2000 (Y2K) mostram que a gestão de datas pode ser complexa. Além do método DateTime.Compare(), há outras formas de comparação, por exemplo: usando operadores de comparação (<, >, ==) ou métodos como DateTime.Equals() e propriedades como DateTime.Ticks. A forma de implementação pode variar dependendo do contexto, mas o importante é entender que o tipo DateTime no C# é imutável e que ao comparar datas estamos na verdade comparando seus valores de ticks, que representam os nanossegundos desde 1 de janeiro de 0001.

Veja Também