Search code examples
.net

Equivalent of Math.Min & Math.Max for Dates?


What's the quickest and easiest way to get the Min (or Max) value between two dates? Is there an equivalent to Math.Min (& Math.Max) for dates?

I want to do something like:

if (Math.Min(Date1, Date2) < MINIMUM_ALLOWED_DATE)
{
    // not allowed to do this
}

Obviously the above Math.Min doesn't work because they're dates.


Solution

  • There is no overload for DateTime values, but you can get the long value Ticks that is what the values contain, compare them and then create a new DateTime value from the result:

    new DateTime(Math.Min(Date1.Ticks, Date2.Ticks))
    

    (Note that the DateTime structure also contains a Kind property, that is not retained in the new value. This is normally not a problem; if you compare DateTime values of different kinds the comparison doesn't make sense anyway.)