/ / Como comparar datas em c # - c #, datetime

Como comparar datas em c # - c #, datetime

Eu tenho duas datas. Uma data é entrada e outra é DateTime.Now. Eu tenho eles em mm/dd/yyyy formato, pode até ser o formato m / d / yy também. Ambas as datas são anuláveis, ou seja, o tipo de dados é DateTime?, já que eu posso passar null também como entrada. Agora eu quero comparar as duas datas apenas com mm/dd/yyyy ou m/d/yy formato.

Respostas:

67 para resposta № 1

Se você tem suas datas em variáveis ​​DateTime, elas não ter um formato.

Você pode usar o Date propriedade para retornar um valor DateTime com a parte da hora definida como meia-noite. Então, se você tem:

DateTime dt1 = DateTime.Parse("07/12/2011");
DateTime dt2 = DateTime.Now;

if(dt1.Date > dt2.Date)
{
//It"s a later date
}
else
{
//It"s an earlier or equal date
}

24 para resposta № 2

Se você tem data em DateTime variável, então é um DateTime objeto e não contém nenhum formato. A data formatada é expressa como string quando Você ligar DateTime.ToString método e fornecer formato nele.

Vamos dizer que você tem dois DateTime variável, você pode usar o método de comparação para comparação,

DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 2, 0, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;

if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";

Fragmento de código retirado de msdn.


8 para resposta № 3

Em primeiro lugar, entenda que DateTime objetos não são formatados. Eles apenas armazenam o ano, mês, dia, hora, minuto, segundo, etc como um valor numérico e a formatação ocorre quando você quer representá-lo como uma string de alguma forma. Você pode comparar DateTime objetos sem formatá-los.

Para comparar uma data de entrada com DateTime.Now, você precisa primeiro analisar a entrada em uma data e comparar apenas as porções Ano / Mês / Dia:

DateTime inputDate;
if(!DateTime.TryParse(inputString, out inputDate))
throw new ArgumentException("Input string not in the correct format.");

if(inputDate.Date == DateTime.Now.Date) {
// Same date!
}