Dateプロパティとは異なり、DateTime.TimeOfDayプロパティおよびDateTimeOffset.TimeOfDayプロパティが返す値は、どちらも時刻の種類(Kindプロパティ)・オフセット値(Offsetプロパティ)の影響を受けず、時刻部分の値がそのままの値で返されます。 なお、TimeOfDayプロパティはTimeSpan型で時刻を返すため、メソッドを使って比較する場合はDateTime.CompareではなくTimeSpan.Compareを使います(TimeSpan.Compareのかわりに比較演算子を使って比較することもできます)。

TimeOfDayプロパティを使って2つのDateTimeの時刻のみを比較する
using System;

class Sample {
  static void Main()
  {
    // 各DateTimeの時刻のみを比較する
    var a = new DateTime(2013, 4, 5, 15, 0, 0);
    var b = new DateTime(2013, 4, 3, 0, 0, 0, DateTimeKind.Local);
    var c = new DateTime(2013, 4, 3, 8, 30, 0, DateTimeKind.Utc);

    Console.WriteLine("a = {0}", a);
    Console.WriteLine("b = {0}", b);
    Console.WriteLine("c = {0}", c);
    Console.WriteLine("a.TimeOfDay = {0}", a.TimeOfDay);
    Console.WriteLine("b.TimeOfDay = {0}", b.TimeOfDay);
    Console.WriteLine("c.TimeOfDay = {0}", c.TimeOfDay);

    Console.WriteLine("a.TimeOfDay < b.TimeOfDay : {0}", a.TimeOfDay < b.TimeOfDay);
    Console.WriteLine("b.TimeOfDay < c.TimeOfDay : {0}", b.TimeOfDay < c.TimeOfDay);
    Console.WriteLine("c.TimeOfDay < a.TimeOfDay : {0}", c.TimeOfDay < a.TimeOfDay);
    Console.WriteLine("TimeSpan.Compare(a.TimeOfDay, b.TimeOfDay) : {0}", TimeSpan.Compare(a.TimeOfDay, b.TimeOfDay));
    Console.WriteLine("TimeSpan.Compare(b.TimeOfDay, c.TimeOfDay) : {0}", TimeSpan.Compare(b.TimeOfDay, c.TimeOfDay));
    Console.WriteLine("TimeSpan.Compare(c.TimeOfDay, a.TimeOfDay) : {0}", TimeSpan.Compare(c.TimeOfDay, a.TimeOfDay));
  }
}
実行結果
a = 2013/04/05 15:00:00
b = 2013/04/03 0:00:00
c = 2013/04/03 8:30:00
a.TimeOfDay = 15:00:00
b.TimeOfDay = 00:00:00
c.TimeOfDay = 08:30:00
a.TimeOfDay < b.TimeOfDay : False
b.TimeOfDay < c.TimeOfDay : True
c.TimeOfDay < a.TimeOfDay : True
TimeSpan.Compare(a.TimeOfDay, b.TimeOfDay) : 1
TimeSpan.Compare(b.TimeOfDay, c.TimeOfDay) : -1
TimeSpan.Compare(c.TimeOfDay, a.TimeOfDay) : -1