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:
 

hdi

Top Contributor
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?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Arbeitszeit / Zeiterfassung - Gedanken und Modellierung Java Basics - Anfänger-Themen 122
D Liste mit Zeitstempeln in Arbeitszeit umrechnen Java Basics - Anfänger-Themen 7
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
R Primzahlen Zähler Programm / Benachbarte Primzahlen Java Basics - Anfänger-Themen 30
M Zähler Java Basics - Anfänger-Themen 3
I Zähler, der erst wieder zählt nachdem Pixel wieder andere Farbe hat Java Basics - Anfänger-Themen 2
K Variablen Zähler Variable in Prozedur Java Basics - Anfänger-Themen 9
F For Schleife ohne Zähler Java Basics - Anfänger-Themen 3
A Ping Pong Score Zähler,aber wie? Java Basics - Anfänger-Themen 3
D Zähler nicht sichtbar (Thema: Konstruktoren) Java Basics - Anfänger-Themen 2
M Variablen Zähler funktioniert nicht - Android App Java Basics - Anfänger-Themen 3
J Zahlensytem-Zähler Java Basics - Anfänger-Themen 1
K JTextField auslesen, in int umwandeln und in einer anderen Klasse als Zähler verwenden Java Basics - Anfänger-Themen 3
R Zähler Java Basics - Anfänger-Themen 9
T Zähler Klasse Java Basics - Anfänger-Themen 4
L Mausclick Zähler Java Basics - Anfänger-Themen 21
StupidAttack Zähler Java Basics - Anfänger-Themen 5
L Minimumsuche mit Zähler Java Basics - Anfänger-Themen 14
-horn- Was passiert, wenn Zähler über Integer Max läuft? Java Basics - Anfänger-Themen 9
O Verständnisfrage Zähler/Rekursion Java Basics - Anfänger-Themen 4
D Zähler beim aufrufen des Strings Java Basics - Anfänger-Themen 2
Z klick zähler Java Basics - Anfänger-Themen 2
N Zähler? Java Basics - Anfänger-Themen 3
F Problem, Zähler speichern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben