Как найти Max Date

Я работаю на С#, используя VisualStudio 2005 в Windows. Я хочу найти максимальную дату между двумя датами.

Предположим, что:

From Date: 10-1-2009//Day-Month-YYYY
To Date  : 1-3-2009

Я хочу написать метод, который возвращает, что "To Date" является большим из двух.

Ответ 1

О, давай, этот кричит, чтобы быть однострочным

public static DateTime Max(DateTime a, DateTime b) {
    return a > b ? a : b;
}

Ответ 2

Попробуйте это для размера, не нужно писать новую процедуру Max снова - используйте generics!

public T Max<T>(T value1, T value2) where T:IComparable
{
    return value1.CompareTo(value2) > 0 ? value1 : value2;
}

Ответ 3

Класс DateTime хранит точки во времени численно как 64-битное целочисленное значение, называемое тиком. Один тик представляет собой сто наносекунд или одну десятую миллионную секунду. В миллисекундах есть 10 000 тиков.

Так как DateTime - просто числовое значение, вы можете легко сравнить их, как и любые два числа, используя операторы < или >.

Ответ 4

Вы можете использовать метод Linq to Objects Max, например:

new [] {date1,date2,date3}.Max();

Ответ 5

public static DateTime WhichIsBigger(DateTime first, DateTime second) {
  if(first > second) return first;
  else return second;
}

Или реальный 1-лайнер:

Func<DateTime, DateTime, DateTime> whichIsBigger = (f, s) => f > s ? f : s;