Returns the earliest date
DateTime min(DateTime other) { return (millisecondsSinceEpoch < other.millisecondsSinceEpoch) ? this : other; }