Einfache Möglichkeit, die Zeit in C # zu verarbeiten?

Mein aktueller Ansatz ist so etwas wie

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
}

Dies ist sehr umständlich und sogar störungsanfällig. TimeSpans sind meines Erachtens keine Lösung, da sie Spannweiten darstellen und nicht an das 24-Stunden-Limit gebunden sind (eine TimeSpan von 56 Stunden und 34 Minuten ist gültig.)

Was ist der bevorzugte Ansatz für diese Art von Berechnungen?

Was vermisse ich?

BEARBEITEN: Die Berechnungen, nach denen ich suche, sind Möglichkeiten, eine vollständige DateTime-Instanz mit einem Stunden-, Minuten- und Sekunden-Triplett zu vergleichen, das eine tatsächliche Tageszeit darstellt, und eine Möglichkeit, über diese Triplets zu operieren (Stunden, Minuten, Sekunden hinzufügen).

EDIT 2: Vielen Dank an alle, ich denke, ich habe jetzt den Kern der DateTime-API. :) Das einzige, was ich vermisse, ist ein Mittel, um einen TimeSpan anzugeben, der nur einen TimeOfDay darstellen soll, aber das ist geringfügig.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage