DateTime.CompareTo() Desvendado

Um problema recorrente no desenvolvimento é a utilização do CompareTo para DateTime.

Apesar de ser uma solução ótima, melhor do que a comparação simples (=, >, <), há sempre uma pequena confusão com o resultado da operação.

Os valores possíveis são 1, 0 ou -1. Mas, afinal, qual deles vem em que situação?

Veja a tabela abaixo e acabe com as dúvidas de uma vez por todas:

Valor Descrição
< Zero A instância é menor do que a data do parâmetro
Zero A instância é igual à data do parâmetro
> Zero A instância é maior do que a data do parâmetro

Exemplo:


if (data.CompareTo(new DateTime(2009, 11, 17)) > 0)
{
// "data" é maior do que o dia de hoje
}

Resumindo, se a “data”, que está na esquerda, for maior, o resultado do if é true.

Ou seja, se você fizer um data.CompareTo(outraData), caso o resultado retorne 1, é porque “data” é maior do que “outraData” (veja que “data” está à esqueda, equivale ao “> 0″). Caso retorne 0, elas são iguais. Caso retorne -1, “outraData” é maior do que “data” (repare que “outraData” está à direita, equivale ao “< 0″).

Maior Igual Menor
1 0 -1

Espero ter ajudado. ;)

Amplexos!

Tags: ,

Postar um comentário ou Deixe um Trackback
seperator

Postar um comentário

Seu email nunca será publicado ou compartilhado. Campos obrigatórios estão marcados com *

*
*