Hallo,
ich habe mir hier aus einigen Beiträgen anregungen geholt, um mit der Zeit zu rechnen. Ich möchte mir meine Arbeitszeit ausrechnen, und was ich daraus für +, bzw. - Stunden habe.
Also ganz einfach: IstArbeitszeit - Sollarbeitszeit - Pausenzeit. Und das Ergebniss soll auf mein Stundenkonto rauf gerechnet werden. Zur Info: Ich möchte noch nicht mit Uhrzeiten rechnen, sondern nur mit anzahl von Stunden und Minuten.
Beispiel:
8h 00min Soll
1h 00min pause
8h 50min Ist
Ergebniss
-0h 10min
Jetzt habe ich mit dem GregorianCalendar gerechnet. Naja, leider kommt nicht das richtige Ergebniss dabei raus.
Hier der BeispielCode:
Leider kommt man damit auf 0h 50min. Wie kann ich mein Problem lösen? Gibt es eine bessere Klasse, mit der ich das gewünschte Ergebniss bekomme? Oder habe ich grundlegend was verkehrt gemacht. Naja, ist ja auch schon recht spät
ich habe mir hier aus einigen Beiträgen anregungen geholt, um mit der Zeit zu rechnen. Ich möchte mir meine Arbeitszeit ausrechnen, und was ich daraus für +, bzw. - Stunden habe.
Also ganz einfach: IstArbeitszeit - Sollarbeitszeit - Pausenzeit. Und das Ergebniss soll auf mein Stundenkonto rauf gerechnet werden. Zur Info: Ich möchte noch nicht mit Uhrzeiten rechnen, sondern nur mit anzahl von Stunden und Minuten.
Beispiel:
8h 00min Soll
1h 00min pause
8h 50min Ist
Ergebniss
-0h 10min
Jetzt habe ich mit dem GregorianCalendar gerechnet. Naja, leider kommt nicht das richtige Ergebniss dabei raus.
Hier der BeispielCode:
Code:
GregorianCalendar cZeit = new GregorianCalendar(0,0,0,8,50);
GregorianCalendar cArbeit = new GregorianCalendar(0,0,0,8,0);
GregorianCalendar cPause = new GregorianCalendar(0,0,0,1,0);
GregorianCalendar cGesamt = new GregorianCalendar(0,0,0,0,0);
long lZeit = cZeit.getTimeInMillis();
long lArbeit = cArbeit.getTimeInMillis();
long lPause = cPause.getTimeInMillis();
long lGesamt = cGesamt.getTimeInMillis();
long lDiff = lGesamt + (lZeit - lArbeit - lPause);
cZeit.setTimeInMillis(lDiff);
Stunden = cZeit.get(Calendar.HOUR); //0
Minuten = cZeit.get(Calendar.MINUTE);//50
Leider kommt man damit auf 0h 50min. Wie kann ich mein Problem lösen? Gibt es eine bessere Klasse, mit der ich das gewünschte Ergebniss bekomme? Oder habe ich grundlegend was verkehrt gemacht. Naja, ist ja auch schon recht spät