Math.max(...) для JodaTime

У меня есть два объекта JodaTime, и мне нужен такой метод

// Return the latest of the two DateTimes
DateTime latest(DateTime a, DateTime b)

Но я не могу найти такого. Я мог бы легко написать это, но я уверен, что JodaTime будет где-то там.

Ответ 1

DateTime реализует Comparable, поэтому вам не нужно катить вас самостоятельно, кроме того:

DateTime latest(DateTime a, DateTime b)
{
  return a.compareTo(b) > 0 ? a : b;
}

или напрямую используя JodaTime API (который учитывает Chronology в отличие от compareTo):

DateTime latest(DateTime a, DateTime b)
{
  return a.isAfter(b) ? a : b;
}

Ответ 2

Как отметил Джек, DateTime реализует Comparable. Если вы используете Guava, максимум две даты (например, a и b) могут быть определены следующим сокращением:

Ordering.natural().max(a, b);