Hallo zusammen, ich habe vor einigen Jahre tolle Hilfe hier im Forum bekommen bezüglich Erstellung eines Stundenrapports im PDF Format.
Diese Formel habe ich durch hilfe hier aus dem Forum erhalten // Startzeit aus Feld "UhrzeitA1" (Format "Zeit HH:MM"): UhrzeitA1=this.getField("UhrzeitA1").value;
// Endezeit aus Feld "UhrzeitE1" (Format "Zeit HH:MM"): UhrzeitE1=this.getField("UhrzeitE1").value;
// Startzeit in Minuten seit 00:00h umrechnen: var StartZeit = UhrzeitA1.substr(0,2) * 60 + UhrzeitA1.substr(3,2) * 1;
// Endezeit in Minuten seit 00:00h umrechnen: var EndeZeit = UhrzeitE1.substr(0,2) * 60 + UhrzeitE1.substr(3,2) * 1;
// Zeitdifferenz in Minuten (auch tagesübergreifend): var DiffZeit = ((EndeZeit + 24*60) - StartZeit) % (24*60);
// ganze Stunden der Dauer: var DauerH = Math.floor(DiffZeit/60);
// Minutenanteil der Dauer: var DauerM = DiffZeit - (DauerH * 60);
// Ergebnis im Format "hh:mm" zusammensetzen: event.value = DauerH + "," + DauerM /60*100;
Hier wird in einem weiteren Feld dann der Wert ausgegeben, die Bezeichnung des Feldes lautet "Stunden1" hier wird der Stundenwert als z.B. 6,25 Stunden angezeigt
Jetzt ist es so, das es weitere Felder gibt Stunden2, Stunden3, Stunden4 und Stunden5. Diese sind so zugeordnet für Montag - Freitag.
Nun hatte ich es so vor, das auch die Werte Stunden1 - Stunden5 addiert werden, und dann eben in Minuten ausgegeben werden anstatt 6,25 eben dann 6,15 oder 6:15.
Das Script musst du 5 mal auf die dazugehörigen Start- und Endzeitfelder anpassen und dem jeweiligen Stunden 1-5 Feld zuweisen.
Oder gehts um die Berechnung der Summe?
Dazu musst du dann wie für die einzelnen Tage auch die Stunden und die Minuten einzeln addieren und bei den Minuten erst durch 60 Teilen, den ganzzahligen Teil den Stunden zuschlagen und den Rest als Minuten hinten anhängen.
Lässt sich alles aus dem vorhandenen Script rausfischen.
Da du für die einzelnen Tage eh die Zeitspanne in Minuten bereits berechnet hast, kannst du für die Summe auch die Minutenwerte der 5 Tage nehmen:
diesen jeweils eigenen Variablen zuweisen, also DiffZeit1, DiffZeit2, … und am Ende die 5 Diffzeiten aufaddieren und anschliessend die Aufteilung in Stunden und Minuten vornehmen:
… nur im Browser zusammengetippt, also ungetestet ;-)
Danke Dir Thomas für die saubere Erklärung, leider bin ich wirklich auf der beginners Site.
Im Prinzip reicht mir die Gesamt Summe. Entweder aus dem Feld "Gesamtstunden" da wird ein Wert angezeigt 7,5 Stunden. Dieser Wert soll dann im Feld "Gesamtstunden1" in Stunden und Minuten angezeigt werden 7:30.
Andere Variante wäre, aber wahrscheinlich Zuviel aufwand, die Werte aus Feld "Stunden1" bis "Stunden5" , im Feld "Gesamtstunden1" anzuzeigen.
Die Werte im Feld Stunden1 eins sollen dann auch in diesem Format 7 Std und 30 Min bzw. oder 07:30 angezeigt werden. Es wäre Toll wenn du mir einen Lösungsansatz mit auf dem Weg geben könntest.
Würde gerne noch einmal Unterstützung bekommen. Ich weiss nicht wie ich den Code in dem Feld "Gesamtstunden" eingeben soll, um die Zeiten aus Stunden1 - Stunden5 (addiert) angezeigt zu bekommen.
Leider kann ich keine Fotos vom Entwurf anhängen.
Gruss Andreas
Die Werte aus dem Feld UhrzeitA1 und UhrzeitA2 werden ja durch den unten stehenden Code im nächstem Feld. "Stunden1" angezeigt, da dort dieser Code hinterlegt ist.
// Startzeit aus Feld "UhrzeitA1" (Format "Zeit HH:MM"): UhrzeitA2=this.getField("UhrzeitA1").value;
// Endezeit aus Feld "UhrzeitE1" (Format "Zeit HH:MM"): UhrzeitE1=this.getField("UhrzeitE1").value;
// Startzeit in Minuten seit 00:00h umrechnen: var StartZeit = UhrzeitA1.substr(0,2) * 60 + UhrzeitA1.substr(3,2) * 1;
// Endezeit in Minuten seit 00:00h umrechnen: var EndeZeit = UhrzeitE1.substr(0,2) * 60 + UhrzeitE1.substr(3,2) * 1;
// Zeitdifferenz in Minuten (auch tagesübergreifend): var DiffZeit = ((EndeZeit + 24*60) - StartZeit) % (24*60);
// ganze Stunden der Dauer: var DauerH = Math.floor(DiffZeit/60);
// Minutenanteil der Dauer: var DauerM = DiffZeit - (DauerH * 60);
// Ergebnis im Format "hh:mm" zusammensetzen: event.value = DauerH + ":" + DauerM;
Der nächste Code wäre dann für den nächsten Wochentag also Stunden2
// Startzeit aus Feld "UhrzeitA2" (Format "Zeit HH:MM"): UhrzeitA2=this.getField("UhrzeitA2").value;
// Endezeit aus Feld "UhrzeitE2" (Format "Zeit HH:MM"): UhrzeitE2=this.getField("UhrzeitE2").value;
USW..
Nun sollte es so sein, das die Werte Stunden1 bis Stunden5. in das Feld Gesamtstunden übertragen/zusammengerechnet werden, und da hapert's bei mir ich bekomme das nicht hin. Die Felder sind in HH:MM formatiert. Ich könnte ja auch die Felder im PDF Formular einfach addieren, dann würde aber die Gesamtstunden nicht stimmen.