[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms Umrechnung Zeit Dezimal in Minuten

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Web/Internet - Webdesign, eForms
Themen
Beiträge
Moderatoren
Letzter Beitrag

Umrechnung Zeit Dezimal in Minuten

schmalen
Beiträge gesamt: 11

17. Okt 2021, 17:11
Beitrag # 1 von 5
Bewertung:
(77414 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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);

DauerH = "00" + DauerH;
DauerH = DauerH.substr(-2);

DauerM = "00" + DauerM;
DauerM = DauerM.substr(-2);

// 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.


Ich bedanke mich im voraus

Gruss Andreas
X

Umrechnung Zeit Dezimal in Minuten

Thomas Richard
Beiträge gesamt: 19324

18. Okt 2021, 14:00
Beitrag # 2 von 5
Beitrag ID: #581455
Bewertung:
(77362 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das war dann wohl dieser Thread:

https://www.hilfdirselbst.ch/...i?post=509045#509045

Aber was ist jetzt die Frage?

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.


als Antwort auf: [#581449]

Umrechnung Zeit Dezimal in Minuten

Thomas Richard
Beiträge gesamt: 19324

18. Okt 2021, 14:09
Beitrag # 3 von 5
Beitrag ID: #581456
Bewertung:
(77350 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nachtrag
Antwort auf: 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.


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:
Code
// Zeitdifferenz in Minuten (auch tagesübergreifend):   
var DiffZeit = ((EndeZeit + 24*60) - StartZeit) % (24*60);

diesen jeweils eigenen Variablen zuweisen, also DiffZeit1, DiffZeit2, …
und am Ende die 5 Diffzeiten aufaddieren und anschliessend die Aufteilung in Stunden und Minuten vornehmen:

Code
// Wochenminutensumme 
var DiffZeitWoche = DiffZeit1 + DiffZeit2 + DiffZeit3 + DiffZeit4 + DiffZeit5;

// ganze Stunden der Dauer:
var DauerHWoche = Math.floor(DiffZeitWoche/60);

// Minutenanteil der Dauer:
var DauerMWoche = DiffZeitWoche - (DauerHWoche * 60);

DauerHWoche = "00" + DauerHWoche;
DauerHWoche = DauerHWoche.substr(-2);

DauerMWoche = "00" + DauerMWoche;
DauerMWoche = DauerMWoche.substr(-2);

// Ergebnis im Format "hh:mm" zusammensetzen:
event.value = DauerHWoche + ":" + DauerMWoche;



… nur im Browser zusammengetippt, also ungetestet ;-)


als Antwort auf: [#581455]
(Dieser Beitrag wurde von Thomas Richard am 18. Okt 2021, 14:11 geändert)

Umrechnung Zeit Dezimal in Minuten

schmalen
Beiträge gesamt: 11

18. Okt 2021, 17:05
Beitrag # 4 von 5
Beitrag ID: #581465
Bewertung:
(77318 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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.

Gruss Andreas


als Antwort auf: [#581449]

Umrechnung Zeit Dezimal in Minuten

schmalen
Beiträge gesamt: 11

28. Nov 2021, 12:45
Beitrag # 5 von 5
Beitrag ID: #581848
Bewertung:
(75914 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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);

DauerH = "00" + DauerH;
DauerH = DauerH.substr(-2);

DauerM = "00" + DauerM;
DauerM = DauerM.substr(-2);


// 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.


als Antwort auf: [#581456]
X