Erste Schritte Arbeitszeit Zähler bzw Feierabend Uhr | GregorianCalendar | SimpleDateFormat|

Romi

Neues Mitglied
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.

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:
 
Du sagst doch selbst:

Mathematisch ganz einfach, (Uhrzeit wo Feierabend ist) - (Startzeit) = So viele hh:mm:ss noch bis Feierabend bzw wenn schon erreicht die Überzeit.

Also woran genau scheiterst du? An der Anzeige in dem hh:mm:ss Format oder worum geht's genau?
 

Zurück
Oben