Странное поведение CompareTo(GregorianCalendar c)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Странное поведение CompareTo(GregorianCalendar c)

Сообщение Anonymous »

Не могли бы вы сказать мне, почему следующий код:

Код: Выделить всё

int a = new GregorianCalendar(2015,3,31,7,45).compareTo(
new GregorianCalendar(2015,4,1,7,45);
System.out.println(a);
выводит 0?

Есть ли способ заставить это работать правильно?

PS: мне нужно отсортировать строки по дате, и я использую этот компаратор:

Код: Выделить всё

array.sort(new Comparator() {
@Override
public int compare(String o1, String o2) {
GregorianCalendar cal1 = new GregorianCalendar(Integer.parseInt(o1.replaceAll(p, "$7")),
Integer.parseInt(o1.replaceAll(p, "$6")), Integer.parseInt(o1.replaceAll(p, "$5")),
Integer.parseInt(o1.replaceAll(p, "$8")), Integer.parseInt(o1.replaceAll(p, "$9")));
GregorianCalendar cal2 = new GregorianCalendar(Integer.parseInt(o2.replaceAll(p, "$7")),
Integer.parseInt(o2.replaceAll(p, "$6")), Integer.parseInt(o2.replaceAll(p, "$5")),
Integer.parseInt(o2.replaceAll(p, "$8")), Integer.parseInt(o2.replaceAll(p, "$9")));
return cal1.compareTo(cal2);
}
});
Он использует регулярные выражения, но сортируется правильно, и только предоставленные даты отсортированы неправильно.

Подробнее здесь: https://stackoverflow.com/questions/293 ... calendar-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»