porownanie, znalezienie najblizszej daty

0

Hey
Chcialbym aby po wpisaniu przez uzytkownika konkretnej daty(dzien, miesiac, rok) system wyrzucil mi najblizsza date, ktora znajduje sie u niego w systemie, ale nie pozniejsza. Zestaw dat znajduje sie w pliku. Jak to zrobic, jakis pomysl? Jak porownac, a potem przeszukac, moze jest gdzies juz taki kod tutaj?

0

Co to znaczy "datę, która znajduje się u niego w systemie"? Data z zegarka, data modyfikacji, utworzenia lub dostępu do jakiegoś pliku czy data instalacji systemu? :)
Spróbuj wyjaśnić lepiej o co chodzi.

0
laztar napisał(a)

Zestaw dat znajduje sie w pliku.
a w jakim formacie?

0

Zakładam, że daty umiesz odczytać.

ArrayList<GregorianCalendar> daty=new ArrayList<GregorianCalendar>();
// pętla odczytująca z poniższym kodem
daty.add(new GregorianCalendar(year,month,day)); 
//posortowanie
Collections.sort(daty);
//data do znalezienia
GregorianCalendar gc=new GregorianCalendar(2003,11,25);
//szukanie
int index=Collections.binarySearch(daty,gc);   

jeśli index jest >=0, to data została znaleziona
jeśli jest ujemny, np. -4, to szukana data winna być na pozycji 3, zatem największa data wcześniejsza niż gc, to daty.get(2).

0

Wedlug mnie zamiast ArrayList lepiej zastosować Vector.

0

Na pewno nie :-P

0

Zgadzam się , Vector to poracha !!!

1 użytkowników online, w tym zalogowanych: 0, gości: 1