Witam, tak jak jest napisane w temacie, moim zadaniem jest sprawdzenie czy podana data mieści się w przedziale dat zawartych w arrayliscie. Chciałem na początku sprawdzić, czy w ogóle znajduje mi jakąś datę z listy, ale niestety nie działa to dobrze.
public class Znajdz_datke {
public static void main(String[] args)
{
Date myDate0 = new Date(2014, 01, 8); // from
Date myDate1 = new Date(2014, 03, 9); // to
Date myDate2 = new Date(2014, 06, 15); // from
Date myDate3 = new Date(2014, 07, 25); // to
List<Date> listOfDates = new ArrayList<Date>();
listOfDates.add(myDate0);
listOfDates.add(myDate1);
listOfDates.add(myDate2);
listOfDates.add(myDate3);
// kluczen będzie datka !
Date key = new Date(2015, 05, 9);
Collections.sort(listOfDates);
int index = Collections.binarySearch(listOfDates, key, new MyDateComparator());
if (index != -1) {
System.out.println("Found it !"); // to się wyświetla ..
}
else
System.out.println("Not");
}
}
class MyDateComparator implements Comparator<Date> {
protected static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd");
public int compare(Date d1, Date d2) {
return DATE_FORMAT.format(d1).compareTo(DATE_FORMAT.format(d2));
}
}
Mógłby ktoś podpowiedzieć jak sobie poradzić z tym ?