2011-08-30 17 views
9

Używam:Dodaj pewną ilość czasu do czasu bieżącego i zapisać go

Calendar c = Calendar.getInstance(); 

, z którymi ja się aktualny czas,

String sHour = c.get(Calendar.HOUR_OF_DAY) 
String sMinute = c.get(Calendar.MINUTE) 

Co potrzebne jest dodanie np 1 Godzina 10 minut - przechowuj ją w zmiennej, a także Substract powiedzmy 10 minut i zapisz ją jako inną zmienną. (Potrzebuję ich używać zarówno w TextView) jak i metodzie Widziałem metodę add(); w dokumentacji Androida, ale nie mogę zrozumieć, jak to działa.   Dzięki

Odpowiedz

24

Opublikowany przez Ciebie kod nie zostanie skompilowany, ponieważ Calendar.get() nie zwraca ciągu znaków. Należy również pamiętać, że kalendarz jest zmienny - nie jest tak, że każde połączenie z numerem add zwraca nowy kalendarz. Musisz więc utworzyć instancję nową za każdym razem, gdy chcesz osobną zmienną dla innej wartości. Na przykład:

Calendar now = Calendar.getInstance(); 

Calendar tmp = (Calendar) now.clone(); 
tmp.add(Calendar.HOUR_OF_DAY, 1); 
tmp.add(Calendar.MINUTE, 10); 
Calendar nowPlus70Minutes = tmp; 

tmp = (Calendar) now.clone(); 
tmp.add(Calendar.MINUTE, -10); 
Calendar nowMinus10Minutes = tmp; 

Jeśli to w ogóle możliwe, ja bym silnie zalecamy używanie Joda Time zamiast Kalendarz/Data - to daleko przełożonego API. Możesz jednak przyciąć zawarte w nim strefy czasowe, aby przyspieszyć rozpoczęcie pracy i zmniejszyć narzut związany z apk.

+0

Idealnie Pomógł mi Dzięki –

4

Możesz po prostu zadzwonić pod numer System.currentTimeMillis() + INTERVAL.

Gdzie INTERVAL jest odstęp w milisekundach (na przykład:

public static final long INTERVAL = 1000 * 60 * 60 * 24; // 1 day 
+1

Dziękuję to jest również właściwe podejście. – jackal

Powiązane problemy