2016-06-03 24 views
1

Ich habe fast ähnliche Fragen zu diesem Thema, aber meine Arbeit nicht so, wie ich will. Überhaupt nicht.Berechnen Zeitunterschied zwischen zwei EditText

Also habe ich versucht, den Zeitunterschied zwischen zwei Zeitstempeln zu berechnen, die ich mit einem TimePicker auf zwei EditTexts gesetzt habe.

Hier ist der Code, den ich an der Arbeit nicht:

public void calcTime() throws Exception{ 
    String startTime = startworkFrom.getText().toString(); 
    String endTime = startworkTo.getText().toString(); 

    DateFormat format = new SimpleDateFormat("hh:mm a"); 
    Date time_1 = format.parse(startTime); 
    Date time_2 = format.parse(endTime); 

    long timeDiff = time_2.getTime() - time_1.getTime(); 

    System.out.println("Time difference" + timeDiff); 
} 

Was im Code fehlt?

UPDATE

fand ich das Problem, dass diese Linie ist:

Dateformat format = neue Simple ("hh: mm a");

Wenn ich die 'a' lösche. Auch der Wert ist wirklich hoch. Wenn ich 12:00 bis 13:00 Uhr einstelle, sollte der Unterschied 1 sein. Aber ich bekomme hier einen wirklich großen Wert. Ich werde jetzt

+0

Was ist die Ausgabe? – Uday

+0

Was bringt getTime zurück? – seanAshmore

+0

@seanAshmore gibt die getTime die Zeit in Millisekunden zurück. Vielleicht nicht so optimal – mogren3000

Antwort

0

Das einzige Problem verwenden, wenn ich zur Arbeit spät in der Nacht beginnen und dann Anschlag am Morgen arbeiten werde ich einen negativen Wert erhalten, aber ich denke, gibt es eine Lösung für den für ein anderes Thema .

tun Dies sollte es

String neg = "-"; 
    long timeDiff; 
    if(timeDiff.contains(neg)){ 
    timeDiff = time_1.getTime() - time_2.getTime(); } 
else{ timeDiff = 
    time_2.getTime() - time_1.getTime(); } 
    System.out.println("Time difference" + timeDiff); 
+0

Ok. Ich sah auch jetzt, dass getHour, das ich verwenden sollte, veraltet ist, und es ist die Kalendermethode, die empfohlen wird zu verwenden, ich werde es ändern, ich denke – mogren3000

+0

Ich habe ein ** großes ** Problem. Wenn ich den Zeitunterschied errechne, bekomme ich die Stunden richtig. Aber wenn die Minuten 60 Minuten erreichen, sollte die Stunde 1 Stunde hinzufügen. Das ist also nicht gut. – mogren3000

0

Eine Lösung für die negativen Werte ist die Math-Bibliothek zu verwenden. Ich habe es so gemacht:

String a =""+Math.abs(diff/(60*60*1000)%24); 
Verwandte Themen