Moin liebe Java Freaks,
bin gerade dabei Java zu lernen bzw mich auf mein betriebliches Abschlussprojekt in Java vorzubereiten.
Dafür habe ich die Aufgabe bekommen, eine art Stempeluhr zu bauen.
* Startzeit (def new = Date() ) beim Start
* Reguläre Arbeitszeit ( 7,36 + 0,45 Pause + evlt geplante Überstunden )
Aus den Werten erechnet sich ja die Zeit bis zum Feierabend.
Startzeit + Reguläre Arbeitszeit + Pausenlänge + evlt geplante Überstunden = Uhrzeit wo Feierabend ist.
So weit so gut, Gui ist fertig.
Aber ich benötige noch den Fall. (Wie lange muss ich noch arbeiten, dass ich Feierabend machen kann)
Mathematisch ganz einfach, (Uhrzeit wo Feierabend ist) - (Startzeit) = So viele hh:mm:ss noch bis Feierabend bzw wenn schon erreicht die Überzeit.
Grüße & danke für eure Hilfe. :rtfm:
bin gerade dabei Java zu lernen bzw mich auf mein betriebliches Abschlussprojekt in Java vorzubereiten.
Dafür habe ich die Aufgabe bekommen, eine art Stempeluhr zu bauen.
* Startzeit (def new = Date() ) beim Start
* Reguläre Arbeitszeit ( 7,36 + 0,45 Pause + evlt geplante Überstunden )
Aus den Werten erechnet sich ja die Zeit bis zum Feierabend.
Startzeit + Reguläre Arbeitszeit + Pausenlänge + evlt geplante Überstunden = Uhrzeit wo Feierabend ist.
So weit so gut, Gui ist fertig.
Aber ich benötige noch den Fall. (Wie lange muss ich noch arbeiten, dass ich Feierabend machen kann)
Mathematisch ganz einfach, (Uhrzeit wo Feierabend ist) - (Startzeit) = So viele hh:mm:ss noch bis Feierabend bzw wenn schon erreicht die Überzeit.
Java:
private void berechneZeiten() throws ParseException {
String startZeit = frame.getArbeitsbeginnstdField().getText() + ":"
+ frame.getArbeitsbeginnminField().getText() + ":"
+ frame.getArbeitsbeginnsekField().getText();
String regularArbeitszeit = frame.getStdzeitField().getText() + ":"
+ frame.getMinzeitField().getText() + ":00";
String pausenZeit = frame.getStdplField().getText() + ":"
+ frame.getMinplField().getText() + ":00";
String ueberStunden = frame.getUeberstundenField().getText() + ":"
+ frame.getUeberminutenField().getText() + ":00";
String feierAbend = "16:47:00";
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
Date sz = null;
Date ra = null;
Date pz = null;
Date us = null;
Date fa = null;
try {
sz = sdf.parse(startZeit);
ra = sdf.parse(regularArbeitszeit);
pz = sdf.parse(pausenZeit);
us = sdf.parse(ueberStunden);
fa = sdf.parse(feierAbend);
} catch (ParseException pEX) {
pEX.printStackTrace();
JOptionPane.showMessageDialog(null, "Konnte die Zeit nicht parsen");
return;
}
// Calender erstellen
// Startzeit Calender
GregorianCalendar gc0 = new GregorianCalendar();
gc0.setTime(sz);
// reguläre Arbeitszeit
GregorianCalendar gc1 = new GregorianCalendar();
gc1.setTime(ra);
// Pausenlänge
GregorianCalendar gc1p = new GregorianCalendar();
gc1p.setTime(pz);
// Überstunden
GregorianCalendar gcus = new GregorianCalendar();
gcus.setTime(us);
// Restzeit zum Feierabend
GregorianCalendar gcfa = new GregorianCalendar();
gcfa.setTime(fa);
// Startzeit + Reguläre Arbeitszeit + Überstunden = Bis dann muss ich
// arbeiten berechnen
gc0.add(Calendar.HOUR_OF_DAY, gc1.get(Calendar.HOUR_OF_DAY));
gc0.add(Calendar.MINUTE, gc1.get(Calendar.MINUTE));
gc0.add(Calendar.SECOND, gc1.get(Calendar.SECOND));
gc0.add(Calendar.HOUR_OF_DAY, gc1p.get(Calendar.HOUR_OF_DAY));
gc0.add(Calendar.MINUTE, gc1p.get(Calendar.MINUTE));
gc0.add(Calendar.SECOND, gc1p.get(Calendar.SECOND));
gc0.add(Calendar.HOUR_OF_DAY, gcus.get(Calendar.HOUR_OF_DAY));
gc0.add(Calendar.MINUTE, gcus.get(Calendar.MINUTE));
gc0.add(Calendar.SECOND, gcus.get(Calendar.SECOND));
// Ausgabe an die Console, wie lange ich noch arbeiten mus bis zum Feierabend
System.out.println("Du musst noch " + gcfa.get(Calendar.HOUR_OF_DAY)
+ ":" + gcfa.get(Calendar.MINUTE) + ":"
+ gcfa.get(Calendar.SECOND) + " so lange arbeiten");
// Ausgabe an die Console, wie lange ich arbeiten muss
System.out.println("Du musst bis " + gc0.get(Calendar.HOUR_OF_DAY)
+ ":" + gc0.get(Calendar.MINUTE) + ":"
+ gc0.get(Calendar.SECOND) + " arbeiten");
// *Übergabe an GUI Feierabend Zeit (Startzeit + Arbeitszeit)
frame.getFeierabendLabel().setText(gc0.get(Calendar.HOUR_OF_DAY) + ":" + gc0.get(Calendar.MINUTE)
+ ":" + gc0.get(Calendar.SECOND));
}
}
Grüße & danke für eure Hilfe. :rtfm: