Pergunta

Gostaria de saber se um determinado momento do dia é passado. Eu realmente não gosto da maneira como eu estou fazendo:

private static readonly TimeSpan _whenTimeIsOver = new TimeSpan(16,25,00);

internal static bool IsTimeOver()
{
    return DateTime.Now.TimeOfDay.Subtract(_whenTimeIsOver ).Ticks > 0; 
}

Como você faz?

Foi útil?

Solução

Como sobre: ??

internal static bool IsTimeOver()
{
    return DateTime.Now.TimeOfDay > _whenTimeIsOver;
}

Sobrecarga de operadores é muito útil para a data e tempo de trabalho :) Você também pode querer considerar a possibilidade de uma propriedade em vez de um método.

É uma ligeira pena que não há um

DateTime.CurrentTime

ou

TimeSpan.CurrentTime

para DateTime.Now.TimeOfDay evitar (assim como de lá DateTime.Today) mas, infelizmente, não ...

Eu tenho um conjunto de métodos de extensão no int em MiscUtil que tornaria a inicialização _whenTimeIsOver mais puro - você usaria:

private static readonly TimeSpan _whenTimeIsOver = 16.Hours() + 25.Minutes();

Não é para todos os gostos, mas eu gosto dele ...

Outras dicas

if (DateTime.Now.TimeOfDay > _whenTimeIsOver)
    ....
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top