C # meilleure façon de comparer deux heures de la journée
Question
Je voudrais savoir si une heure précise de la journée est passée. Je n'aime pas vraiment ce que je fais:
private static readonly TimeSpan _whenTimeIsOver = new TimeSpan(16,25,00);
internal static bool IsTimeOver()
{
return DateTime.Now.TimeOfDay.Subtract(_whenTimeIsOver ).Ticks > 0;
}
Comment allez-vous?
La solution
Que diriez-vous de:
internal static bool IsTimeOver()
{
return DateTime.Now.TimeOfDay > _whenTimeIsOver;
}
La surcharge d’opérateurs est très utile pour le travail sur la date et l’heure :) Vous pouvez également envisager d’en faire une propriété au lieu d’une méthode.
Dommage qu'il n'y ait pas de
DateTime.CurrentTime
ou
TimeSpan.CurrentTime
pour éviter DateTime.Now.TimeOfDay
(tout comme il existe DateTime.Today
), mais hélas, non ...
J'ai un ensemble de méthodes d'extension sur int
dans MiscUtil ce qui rendrait l'initialisation de _whenTimeIsOver
plus précise - vous utiliseriez:
private static readonly TimeSpan _whenTimeIsOver = 16.Hours() + 25.Minutes();
Ce n’est pas pour tous les goûts, mais j’aime bien ...
Autres conseils
if (DateTime.Now.TimeOfDay > _whenTimeIsOver)
....
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow