¿Manera simple de manejar el tiempo en C #?

Mi enfoque actual es algo así 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
}

Esto es muy engorroso e incluso propenso a fallar. Los TimeSpans no son una solución por lo que puedo ver, porque representan lapsos y no están limitados por el límite de 24 horas (es válido un TimeSpan de 56 horas y 34 minutos).

¿Cuál es el enfoque preferido para este tipo de cálculos?

¿Qué me estoy perdiendo?

EDITAR: Los cálculos que busco son formas de comparar una instancia completa de DateTime con una hora, un minuto, un segundo trío que representa una hora real del día y una forma de operar sobre esos trillizos (agregar horas, minutos, segundos).

EDITAR 2: Gracias a todos, tengo la esencia de la API DateTime ahora, creo. :) Lo único que echo de menos es un medio para especificar un TimeSpan que debería representar un TimeOfDay solamente, pero eso es menor.

Respuestas a la pregunta(4)

Su respuesta a la pregunta