Arbeitsstunden berechnen

Status
Nicht offen für weitere Antworten.

tfo

Mitglied
Hallo,

ich bin gerade dabei Arbeitsstunden auszuwerten. Die Daten kommen aus einer DB und ich hole mir aus dem ResultSet zwei Time-Objekte die ich dann voneinander abziehe um die Anzahl der Stunden zu bekommen, die gearbeitet wurden! Das realisiere ich mit der Methode "getTime()" die mir jeweils einen Millisekunden-Wert vom Typ Long wieder gibt. Nach der Subtraktion der beiden Werte übergebe ich die Differenenz der beiden Werte einem neuen Time-Objekt der mit diesem Wert erstellt/initialisiert wird!

Zu Testzwecken habe ich folgende Werte genommen: (Uhrzeit und dann der zugehörige Millisekunden-Wert)

14:30:00 -- 48600000
07:30:00 -- 23400000
Differenz = 25200000

Zeitspanne wären 7 Stunden aber er rechnet warum auch immer eine Stunde mehr!
Und das ist der Fehler worum es geht. Egal welche Uhrzeiten es sind, es ist immer eine Stunde zu viel! Hat jemand eine Idee woran es liegt bzw. erkennt einen Fehler? Wenn es einen anderen Lösungsweg gibt, nehme ich den auch dankend an!

Hier noch zum Schluss der Code-Auszug:

Code:
Time time1 = result.getTime("DatumZeitEnde");
Time time2 = result.getTime("DatumZeitStart");
long diff = (time1.getTime()) - (time2.getTime());
Time resultTime = new Time(diff);

Würde mich über Antworten sehr freuen und Danke schon mal im Voraus :)
 

tfo

Mitglied
Vielen Dank erstmal für den Link!

Habe es jetzt wie folgt umgesetzt:

Code:
Calendar time1 = new GregorianCalendar();
time1.setTime(result.getTime("DatumZeitEnde"));

Calendar time2 = new GregorianCalendar();
time2.setTime(result.getTime("DatumZeitStart"));

long diff = time1.getTimeInMillis()-time2.getTimeInMillis();
Time resultTime = new Time(diff);

Entweder bin ich wieder falsch ran gegangen oder es funktioniert bei mir einfach nicht!
Denn bekomme wieder eine Diffenrenz raus, wo 1 Stunde zu viel ist :(


Edit:
Könnte ja jetzt immer ne Stunde abziehen, aber das ja nicht der Sinn der Sache!
 
S

SlaterB

Gast
die Differenz ist 7 Stunden, dass ist in England 7:00 morgens und in Deutschland 8:00 morgens wegen Zeitverschiebung,
bei Sommer-/ Winterzeit/ Schaltjahren noch schlimmer,

ich glaube bei Calendar wirst du auch nicht viel weiter kommen,
lieber long-Werte direkt verwenden, durch 1000*3600 teilen usw.

Code:
public class Test
{
    public static DateFormat ENGLISH_DATE_FORMAT = new SimpleDateFormat("HH:mm:ss");
    static
    {
        ENGLISH_DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT"));

    }

    public static void main(String[] args)
        throws Exception
    {

        Time t1 = new Time(48600000);
        Time t2 = new Time(23400000);
        System.out.println(t1 + " - " + t2);

        Time t3 = new Time(t1.getTime() - t2.getTime());
        System.out.println(ENGLISH_DATE_FORMAT.format(t3));
    }
}
 

schalentier

Gesperrter Benutzer
Oder gleich mit Joda Time arbeiten. Fuer dich interessant duerfte die Klasse LocalTime sein.

Code:
LocalTime time1 = LocalTime.fromMillisOfDay( 48600000 );
LocalTime time2 = LocalTime.fromMillisOfDay( 23400000 );
LocalTime diff = time1.minus( time2 );

int hours = diff.getHourOfDay();
 
S

SlaterB

Gast
@schalentier
nana, wenn schon dann doch

Code:
LocalTime time1;
LocalTime time2;
LocalTime diff;
int hours;

time1 = LocalTime.fromMillisOfDay( 48600000 );
time2 = LocalTime.fromMillisOfDay( 23400000 );
diff = time1.minus( time2 );

hours = diff.getHourOfDay();
;)

sorry, ein paar mal musst du das noch erdulden
 

tfo

Mitglied
Nette Klasse nur bekomme ich immer einen Fehler bei


Code:
diff = time1.minus( time2 )

The method minus(ReadablePeriod) in the type LocalTime is not applicable for the arguments (LocalTime)

also die Methode erwartet "ReadablePeriod"...was das nun zu heißen hat, weiß ich leider nicht! Ansatz sieht ja gut aus!
 

schalentier

Gesperrter Benutzer
SlaterB hat gesagt.:
sorry, ein paar mal musst du das noch erdulden

Musst dich nicht entschuldigen, damit komm ich schon noch klar. Wenn du an meiner Stelle hier sitzen wuerdest, wuerdest du verstehen, was genau ich meine und damit bezwecke. Leider darf ich nix vom Quellcode (vorher/nachher) posten...

@TO: Sorry, haette es wohl doch erstmal probieren sollen. Nimm minusMillis und lies dich mal in die Konzepte von Joda Time ein. Es gibt auch Duration, das passt sicherlich noch besser zu deinem Problem.
 

tfo

Mitglied
Vielen Dank für die Info's und schnellen Antworten :toll:
Werde mir mal JodaTime genauer anschauen!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
bittedanke Wie benötigte Bits berechnen (Huffmankodierung) Allgemeine Java-Themen 7
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
ReinerCoder Kombinationsmöglichkeiten der Textfelder berechnen Allgemeine Java-Themen 14
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
MiMa Prüfziffer einer EAN Nummer berechnen Allgemeine Java-Themen 4
C Java Script Pause berechnen Allgemeine Java-Themen 5
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
MaxG. Best Practice Alle Kombinationen berechnen Allgemeine Java-Themen 3
Aruetiise Funktion(y = mx+n) in String speichern und berechnen Allgemeine Java-Themen 9
N Das große O berechnen Allgemeine Java-Themen 2
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
N Kombinationen beliebiger Größe berechnen Allgemeine Java-Themen 1
The Pi Anzahl der Gewichtscheiben berechnen Allgemeine Java-Themen 11
B Hirsch-Index berechnen Allgemeine Java-Themen 11
B Umfang berechnen für Polygone Allgemeine Java-Themen 18
C pplet Mitelwert Berechnen Allgemeine Java-Themen 0
J Primzahlen berechnen Allgemeine Java-Themen 13
K F-Verteilung FINV in Java berechnen Allgemeine Java-Themen 4
A Helligkeit eines Bildes berechnen Allgemeine Java-Themen 1
P Methoden Alle Kombinationen aus 2 Karten berechnen Allgemeine Java-Themen 2
C mp3-Lied Dauer berechnen Allgemeine Java-Themen 1
L Winkel eines Vektors berechnen [Anfängerprob] Allgemeine Java-Themen 5
R Threads Taskzeit berechnen Allgemeine Java-Themen 12
S Eclipse Entfernung berechnen Allgemeine Java-Themen 16
T Kreis und sekant schnittpunkt berechnen mit latitude longitude Allgemeine Java-Themen 4
B Java Diffentialgleichungen berechnen Allgemeine Java-Themen 3
W 2D-Grafik Kontrast eines Bildes berechnen Allgemeine Java-Themen 6
T Taylorpolynom berechnen Allgemeine Java-Themen 14
S Erste Schritte Mittelsenkrechte berechnen Allgemeine Java-Themen 3
P Matrix Kurtosis berechnen Allgemeine Java-Themen 40
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
S Teiler Berechnen Allgemeine Java-Themen 6
Kr0e Differenzen von Bildern berechnen - Remote control Allgemeine Java-Themen 2
D md5 berechnen für BufferedImage Allgemeine Java-Themen 5
J bewegliche Feiertage berechnen Allgemeine Java-Themen 7
W Rechnungsbetrag berechnen Allgemeine Java-Themen 2
reibi Checksumme für ein File berechnen Allgemeine Java-Themen 12
M Integral berechnen Allgemeine Java-Themen 5
D Primzahlen berechnen funktioniert nicht Allgemeine Java-Themen 2
S Algorithmus um nächst folgende Primzahl zu berechnen Allgemeine Java-Themen 7
Developer_X Prozentdifferenz berechnen. Allgemeine Java-Themen 13
M Kombinationen über rekursiven Algorithmus berechnen? Allgemeine Java-Themen 10
M Monatliche Zeitspannen berechnen Allgemeine Java-Themen 3
Ark Arkussinus effizient berechnen Allgemeine Java-Themen 12
Iron Monkey Potenzzahlen mit shiftLeft berechnen? Allgemeine Java-Themen 13
N Rechenzeit berechnen? Allgemeine Java-Themen 3
H Schrifthöhe berechnen / Swing Allgemeine Java-Themen 5
T ungerade zahlen berechnen Allgemeine Java-Themen 3
X Suche Java Klasse die Feiertage berechnen kann Allgemeine Java-Themen 2
G ganzzahlige Potenz schnell berechnen Allgemeine Java-Themen 4
M Lautstärke von Audiosignal live berechnen Allgemeine Java-Themen 7
S CRC wert berechnen ergibt 0 ? Allgemeine Java-Themen 9
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
M Date Range auswerten und die Monate berechnen Allgemeine Java-Themen 2
V Setter zum Berechnen nutzen? Allgemeine Java-Themen 5
G Richtung berechnen anhand Koordinaten Allgemeine Java-Themen 3
P Dauer (Tage, Stunden, Minuten, Sekunden) berechnen Allgemeine Java-Themen 5
D Mittelwert einer Menge von Doubles berechnen Allgemeine Java-Themen 3
P Winkel berechnen. Allgemeine Java-Themen 3
0 Alle Teiler einer Zahl performant berechnen? Allgemeine Java-Themen 9
B Was würdet ihr dafür berechnen? Allgemeine Java-Themen 7
T MessageDigest von einem char[] berechnen Allgemeine Java-Themen 7
S den zweit niedrigsten wert in einem array berechnen Allgemeine Java-Themen 2
E CRC 8 Berechnen Allgemeine Java-Themen 1
M Math-String-Formel berechnen lassen Allgemeine Java-Themen 4
B Ellipsen Kreisbahnen berechnen! Allgemeine Java-Themen 11
M Alle möglichen Kombinationen von mehreren Objekten berechnen Allgemeine Java-Themen 6
clemente lanman und nt password berechnen Allgemeine Java-Themen 7
J an und bn berechnen Allgemeine Java-Themen 5
F Datum mit anzahl tagen berechnen Allgemeine Java-Themen 3
B Differenz in Monaten berechnen --- DateDiff()? Allgemeine Java-Themen 12
B Distance berechnen! Allgemeine Java-Themen 7
D Feiertage berechnen Allgemeine Java-Themen 8
F vergangene Zeit berechnen Allgemeine Java-Themen 6
R Zeitspannen berechnen Allgemeine Java-Themen 7
N 2 hoch 100 berechnen Allgemeine Java-Themen 8
P Punkt berechnen Allgemeine Java-Themen 4
C x-te Wurzel berechnen Allgemeine Java-Themen 2
M Formel in einem String während Laufzeit berechnen. Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben