Wpis z mikrobloga

Mireczki chce napisać aplikację która pobierze z bazy danych godzinę i porówna ją z aktualnym czasem, jak to zrobić najlepiej? Aktualnie po zamianie na milisekundy coś się dzieje i wychodzą całkiem inne godziny. Poniżej podam kod jak to wygląda teraz.

Date data
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
data = sdf.parse(k.getString(1)); <-- k to obiekt Cursor.
if (data.getTime() > czas)
dalsze działanie

czas to zmienna typu long do której przekazuje aktualny czas z urządzenia
`czas = System.currentTimeMillis()

#programowanie #androiddev
  • 10
@tusk:

Aktualny czas:

long actualHour = Calendar.getInstance().get(Calendar.HOUROFDAY);
long actualMinute = Calendar.getInstance().get(Calendar.MINUTE);
long actualSecond = Calendar.getInstance().get(Calendar.SECOND);

Teraz pobierz Godzine,minute, sekunde z bazy i #!$%@? prostego ifa ?

ps, nie wiem nie znam się zarobiony jestem, ale przed chwilą też potrzebowałem podobnej funkcjonalności i własnie tak to rozwiązałem, pobierając aktualny czas do 3 zmiennych bez milisekund i porównując je do danych z bazy SQL,
@najavie: A to widocznie mi się pomyliły klasy, bo w jednej milisekundy reprezentowały czas jaki upłynął od jakiejś tam daty, chyba 1970 i myślałem, że można to zapisać w jednej liczbie, dzięki.
@najavie: No chyba że przerobiłbyś ten wynik na sekundy... np

15:15:10 = 3600 *15 + 15*50 + 10 = 54760
10* 3600 + 10* 60 + 10 = 36610

I teraz już te sekundy mógłbyś porównać, jeśli porównujesz czas z tego samego dnia .. Bo ten wynik to upływ sekund od 00:00 więc czas będzie się zgadzać
@najavie:
@wytrzzeszcz: Tworzę aplikacje obliczajaca czas do najbliższego busa. Godziny odjazdów mam zapisane w lokalnej bazie danych. W pętli wyszukuje najpierw sprawdzam tylko te busy które jeszcze nie odjechaly (ich godzina jest "większa" od aktualnej) a następnie sprawdzam różnice czasu odjazdu od aktualnego i wybieram te najmniejsza. Dlatego lepiej by się wykonywalo te zadania na jednej liczbie. Jeszcze się zastanawiam nad wymuszeniem tego aby w bazie godziny były posortowane bo