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?
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.
laztar napisał(a)
Zestaw dat znajduje sie w pliku.
a w jakim formacie?
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).
Wedlug mnie zamiast ArrayList lepiej zastosować Vector.
Na pewno nie :-P
Zgadzam się , Vector to poracha !!!
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.