Maneira simples de lidar com tempo em c #?
Minha abordagem atual é algo como
DateTime startHour = new DateTime(1900,1,1,12,25,43);
DateTime endHour = new DateTime(1900,1,1,13,45,32);
// I need to, say, know if a complete DateTime instance
// is later than startHour plus 15 minutes
DateTime now = DateTime.Now();
startHour = startHour.addMinutes(15);
if (now.CompareTo(new DateTime(now.Year, now.Month, now.Day, startHour.Hour,
startHour.Minute, startHour.Second)) > 0)
{
//I can do something now
}
Isso é muito complicado e até propenso a falhas. Os TimeSpans não são uma solução, até onde eu posso ver, porque eles representam spans e não estão limitados pelo limite de 24 horas (um TimeSpan de 56 horas e 34 minutos é válido).
Qual é a abordagem preferida para esse tipo de cálculo?
o que estou perdendo?
EDIT: Os cálculos que estou depois são maneiras de comparar uma instância DateTime completa com uma hora, minuto, segundo trio representando uma hora real do dia e uma maneira de operar sobre os trios (adicionar horas, minutos segundos).
EDIT 2: Obrigado a todos, eu tenho a essência da API DateTime agora, eu acho. :) A única coisa que eu sinto falta é um meio de especificar um TimeSpan que deve representar apenas um TimeOfDay, mas isso é menor.