Have you looked at DateTime through reflector? It might shed some light on whats available for you to party on.
public static int Compare(DateTime t1, DateTime t2)
{
long internalTicks = t1.InternalTicks;
long num2 = t2.InternalTicks;
if (internalTicks > num2)
{
return 1;
}
if (internalTicks < num2)
{
return -1;
}
return 0;
}
public int CompareTo(DateTime value)
{
long internalTicks = value.InternalTicks;
long num2 = this.InternalTicks;
if (num2 > internalTicks)
{
return 1;
}
if (num2 < internalTicks)
{
return -1;
}
return 0;
}
public int CompareTo(object value)
{
if (value == null)
{
return 1;
}
if (!(value is DateTime))
{
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeDateTime"));
}
DateTime time = (DateTime) value;
long internalTicks = time.InternalTicks;
long num2 = this.InternalTicks;
if (num2 > internalTicks)
{
return 1;
}
if (num2 < internalTicks)
{
return -1;
}
return 0;
}
public static bool operator ==(DateTime d1, DateTime d2)
{
return (d1.InternalTicks == d2.InternalTicks);
}
public static bool operator >(DateTime t1, DateTime t2)
{
return (t1.InternalTicks > t2.InternalTicks);
}
public static bool operator >=(DateTime t1, DateTime t2)
{
return (t1.InternalTicks >= t2.InternalTicks);
}
public static bool operator !=(DateTime d1, DateTime d2)
{
return (d1.InternalTicks != d2.InternalTicks);
}
public static bool operator <(DateTime t1, DateTime t2)
{
return (t1.InternalTicks < t2.InternalTicks);
}
public static bool operator <=(DateTime t1, DateTime t2)
{
return (t1.InternalTicks <= t2.InternalTicks);
}