101 votes

Comment vérifier si deux DateTime se produisent le même jour

Existe-t-il un meilleur moyen .net de vérifier si un DateTime s'est produit «aujourd'hui», puis le code ci-dessous?

 if ( newsStory.WhenAdded.Day == DateTime.Now.Day &&
     newsStory.WhenAdded.Month == DateTime.Now.Month &&
     newsStory.WhenAdded.Year == DateTime.Now.Year )
{ 
    // Story happened today
}
else
{ 
    // Story didn't happen today
}
 

205voto

sharpcloud Points 4141
 if (newsStory.WhenAdded.Date == DateTime.Today)
{

}
else
{

}
 

Devrait faire l'affaire.

27voto

Dave Downs Points 4677
if( newsStory.Date == DateTime.Today )
{
    // happened today
}

14voto

Stephen Newman Points 1375

Essayer

 if (newsStory.Date == DateTime.Now.Date) 
{ /* Story happened today */ }
else
{ /* Story didn't happen today */ }
 

12voto

pretender Points 51

Ma solution:

 private bool IsTheSameDay(DateTime date1, DateTime date2)
{
    return (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear);
}
 

7voto

Lucero Points 38928

Si NewsStory utilisait également un DateTime, il suffit de comparer la propriété Date et vous avez terminé.

Cependant, cela dépend de ce que "aujourd'hui" signifie réellement. Si quelque chose est posté peu avant minuit, il sera "vieux" après un court instant. Il serait peut-être préférable de conserver la date exacte de l’histoire (y compris l’heure, de préférence UTC) et de vérifier si moins de 24 heures (ou peu importe) se sont écoulées, ce qui est simple (les dates peuvent être soustraites, ce qui vous donne un TimeSpan avec un ou la propriété TotalDays).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X