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?

Était-ce utile?

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
scroll top