2014-11-03 5 views
-2

Я пишу свой собственный метод compareTo для сравнения двух дат. Как мне это сделать?Сравнение двух дат в Java, без сравнения.

Я уже думал об этом вопросе, используя тонны утверждений if, но должен быть лучший способ.

Любые идеи?

+0

Использовать значение 'long'? –

ответ

3

Если вы имеете в виду java.util.Date, просто сделайте date1.getTime() < date2.getTime(). Простое сравнение длинных значений.

0

Это хорошее начало:

public class MyComparator extends Comparator<Date> { 
    public int compare(Date o1, Date o2){ 
     return o1.getTime() - o2.getTime(); 
    } 
} 

Например:

TreeSet<Date> ts = new TreeSet<Date>(new MyComparator()); 
ts.add(new Date(98796541)); 
ts.add(new Date(59586541)); 
System.out.println("Earlier is " + ts.first()); 
1

Есть три метода, которые могут помочь Date.before(Date), Date.after(Date) и Date.equals(Date) вы могли бы сделать что-то вроде

public static int compareTo(Date a, Date b) { 
    if (a.equals(b)) return 0; 
    return (a.before(b) ? -1 : 1); 
} 
Смежные вопросы