C# DateTime tombe dans les dernières 24 heures
J'ai un DateTime
objet que j'aimerais vérifier et voir si elle tombe dans les dernières 24 heures.
J'ai fait quelque chose comme ça, mais c'est mal:
myDateTime > DateTime.Now.AddHours(-24) && myDateTime < DateTime.Now
où ai-je fait de mal?
Définir "c'est faux"... à première vue, il semble OK... essayé AddDays(-1) ?
OriginalL'auteur Gully Monsta | 2011-03-19
Vous devez vous connecter pour publier un commentaire.
Il n'y a rien de mal avec le code que vous avez posté, donc, tout ce que vous avez fait de mal, c'est quelque part ailleurs dans le code.
Je ne vois que deux défauts mineurs dans le code, mais ils ne touchent le coin des affaires:
Vous devriez éviter de contracter le
DateTime.Now
propriété à plusieurs reprises dans le code. Sa valeur change, de sorte que vous pouvez obtenir des résultats incohérents dans certains cas, lorsque l'évolution des valeurs de l'un à l'autre.Pour obtenir un intervalle de temps que vous aurait généralement de paire avec inclusive et exclusive de l'opérateur, comme
>
et<=
, ou>=
et<
. De cette façon, vous pouvez vérifier à intervalles réguliers les uns à côté des autres, comme 0 - 24 heures sur 24 et 28 heures, sans l'obtention d'un fossé ou d'un chevauchement.Monsta: j'ai ajouté un exemple ci-dessus. Cependant, ce n'est pas de l'optimisation, c'est juste d'éviter les éventuelles incohérences dans le code.
Un autre petit truc c'est qu'il doit utiliser
UTCNow
. Je pense queNow
présente un peu étrange comportement lors du passage de/à l'heure d'été. Vous ne savez pas si cela affecte le présent code.OriginalL'auteur Guffa
DateTime.Now
une fois à l'intérieur de la fonction, sinon la valeur est susceptible d'évoluer.<=
, pas<
. si vous cochez une microseconde après le temps a été défini, il sera toujours égal àDateTime.Now
. J'ai effectivement rencontré ce dans le code de production où les importations ne se trouveraient pas dans une autre requête qui a vérifié<
, car l'importation a été trop rapide!Utiliser ce code:
OriginalL'auteur configurator