12 Stimmen

Eine bestimmte Zeitspanne zu einer aktuellen Zeit addieren und diese schreiben

Ich benutze:

Calendar c = Calendar.getInstance();

mit dem ich eine aktuelle Zeit erhalte,

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

Was ich brauche ist, um z.B. 1 Stunde 10 Minuten hinzuzufügen - speichern Sie es in einer Variablen und auch Substract sagen wir 10 Minuten und speichern, dass als eine andere Variable. (Ich muss sie beide in einer TextView )

Ich habe die add(); Methode in der Android-Dokumentation, aber ich kann nicht verstehen, wie sie funktioniert. Danke

33voto

Jon Skeet Punkte 1325502

Der Code, den Sie gepostet haben, lässt sich nicht kompilieren, da Calendar.get() gibt keine Zeichenkette zurück. Sie sollten auch beachten, dass der Kalender veränderbar ist - es ist nicht so, dass jeder Aufruf von add gibt einen neuen Kalender zurück. Sie müssen also eine neu Instanz, wenn Sie eine separate Variable für einen anderen Wert benötigen. Zum Beispiel:

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;

Wenn irgend möglich, würde ich stark empfehlen, dass Sie Joda Zeit anstelle von Kalender/Datum - es ist ein weit überlegene API. Sie sollten jedoch die enthaltenen Zeitzonen kürzen, damit Sie schneller loslegen können und weniger Overhead in Ihrer Apk haben.

5voto

IncrediApp Punkte 10223

Sie können einfach aufrufen System.currentTimeMillis() + INTERVAL .

Dabei ist INTERVAL das Intervall in Millisekunden (zum Beispiel:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X