Hallo Liebe Acronauten,
ich habe folgendes Problem!
Ich habe eine PDF Formular erstellt, dort sollen die Nutzer Ihre Arbeitszeiten eintragen.
1. Feld - Arbeitszeit Beginn
2. Feld - Arbeitszeit Ende
3. Feld - Arbeitszeit Gesamt
4. Feld - abzuziehende Pausenzeit (0:30h oder 0:45h)
Wenn als im Feld 3 (Arbeitszeit Gesamt) kleiner gleich "9:30h" steht, soll im Feld 4 "0:30h" stehen und wenn im Feld 3 gößergleich "9:31h" steht, soll im Feld 4 "0:45h" stehen.
Ich hoffe mir kann geholfen werden
Vielen Dank um Voraus!
Mario
Wenn - Dann Funktion
Re: Wenn - Dann Funktion
Hallo,
bisher habe ich folgendes und es funktioniert.
Hat jemand noch Verbesserungsvorschläge?
Danke Mario
bisher habe ich folgendes und es funktioniert.
Code: Alles auswählen
var dauer = this.getField("mo-dauer").value;
dtdauer = dauer.toString();
dtdauer = dtdauer.split(":");
var dtStartH = Number(dtdauer[0]);
var dtStartM = Number(dtdauer[1]);
var zeitdauer = dtStartH * 60 + dtStartM;
var pause = this.getField("mo-pause").value;
dtpause = pause.toString();
dtpause = dtpause.split(":");
var dtStartH = Number(dtpause[0]);
var dtStartM = Number(dtpause[1]);
//Umrechnen der Minuten in Stunden
var zeitpause = dtStartH * 60 + dtStartM;
//Ausgabe der Berechneten Zeit als hh:mm
this.getField("wo-aznetto").value=((zeitdauer-zeitpause)-(zeitdauer-zeitpause)%(60))/60 +":"+ (zeitdauer-zeitpause)%(60)
Danke Mario
Zuletzt geändert von answer am 27.02.2020, 09:07, insgesamt 1-mal geändert.
Re: Wenn - Dann Funktion
Hi Mario,
mit Zeiten zu rechnen ist leider nicht so einfach. Man muss die Zeitwerte erst in Zahlenwerte umwandeln, um dann Berechnungen anzustellen.
Du könntest es z.B. so realisieren:
Alle Felder haben das Format Zeit (HH:MM).
In den Eigenschaften des Feldes "tGesamt" fügst du bei Berechnung folgendes Script ein:
Für die Berechnung der Pause gibst du dem Feld "tPause" folgendes mit:
Entspricht das in etwa dem was du haben wolltest?
mit Zeiten zu rechnen ist leider nicht so einfach. Man muss die Zeitwerte erst in Zahlenwerte umwandeln, um dann Berechnungen anzustellen.
Du könntest es z.B. so realisieren:
Alle Felder haben das Format Zeit (HH:MM).
In den Eigenschaften des Feldes "tGesamt" fügst du bei Berechnung folgendes Script ein:
Code: Alles auswählen
var tS = this.getField("tStart").value;
var tE = this.getField("tEnd").value;
var numStartZ = startZeit();
var numEndZ = endZeit();
function startZeit(){
var sZeit = new Date(), //erzeugt ein Datum von heute, mit vorgegebener Zeit (Stunden und Minuten aus Startzeit)
sH = sZeit.setHours(tS.substring(0, 2)),
sM = sZeit.setMinutes(tS.substring(3, 5)),
sS = sZeit.setSeconds(00);
var numsZeit = Date.parse(sZeit); //gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC bis zu unserem Datum zurück
return numsZeit;
}
function endZeit(){
var eZeit = new Date(),
eH = eZeit.setHours(tE.substring(0, 2)),
eM = eZeit.setMinutes(tE.substring(3, 5)),
eS = eZeit.setSeconds(00);
var numeZeit = Date.parse(eZeit);
return numeZeit;
}
//mit den Zahlenwerten in Millisekunden können wir jetzt rechnen
var tDifferenz = (numEndZ - numStartZ);
var tDiffMin = (tDifferenz / 60000);
var tGesH = Math.floor(tDiffMin / 60);
var tGesM = (tDiffMin - (tGesH * 60));
var gesamtZeit = tGesH + ":" + tGesM;
event.value = gesamtZeit;
Code: Alles auswählen
var tS = this.getField("tStart").value;
var tE = this.getField("tEnd").value;
var tP = this.getField("tPause").value;
var numStartZ = startZeit();
var numEndZ = endZeit();
function startZeit(){
var sZeit = new Date(),
sH = sZeit.setHours(tS.substring(0, 2)),
sM = sZeit.setMinutes(tS.substring(3, 5)),
sS = sZeit.setSeconds(00);
var numsZeit = Date.parse(sZeit);
return numsZeit;
}
function endZeit(){
var eZeit = new Date(),
eH = eZeit.setHours(tE.substring(0, 2)),
eM = eZeit.setMinutes(tE.substring(3, 5)),
eS = eZeit.setSeconds(00);
var numeZeit = Date.parse(eZeit);
return numeZeit;
}
var tDifferenz = (numEndZ - numStartZ);
var tDiffMin = (tDifferenz / 60000);
var tGesH = Math.floor(tDiffMin / 60);
var tGesM = (tDiffMin - (tGesH * 60));
var pausenZeit = (00 + ":" + tPause());
function tPause(){
if(tDiffMin <= 570){
return 30;
}else if(tDiffMin >= 571){
return 45;
}
}
event.value = pausenZeit;
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.