How to define an Ordering in Scala?

Ivan picture Ivan · Jan 30, 2012 · Viewed 16.9k times · Source

Having val hm: HashMap[org.joda.time.DateTime, MyType] I am trying to get the first and the last DateTime of the set by means of hm.keys.min and hm.keys.max respectively but the compiler says No implicit Ordering defined for org.joda.time.DateTime. How to define this ordering (both implicit and explicit options are interesting)?

Answer

retronym picture retronym · Jan 30, 2012
object Joda {
    implicit def dateTimeOrdering: Ordering[DateTime] = Ordering.fromLessThan(_ isBefore _)
}

// elsewhere
import Joda._
dateTimes.sorted