Zeiten addieren

Fragen & Antworten zur Steuerung von 3D Inhalten in PDFs über JavaScript
Antworten
Nutzer
Beiträge: 1
Registriert: 15.02.2024, 23:40

Zeiten addieren

Beitrag von Nutzer » 16.02.2024, 00:03

Hallo Forengemeinde,

ich bin neu hier und habe auch schon die Forensuche bedient, komme aber mit meinem Problem nicht weiter. Ich habe eine pdf-Datei als Formular erstellt, in der ich zwei Felder habe, in der Zeiten eingetragen werden sollen. In einem dritten Feld soll die Summe dieser Zeiten ausgegeben werden, wobei hier nicht nur 24 Stunden möglich sind und der Tag anschließend neu anfängt, sondern die Gesamtstunden bzw. -minuten interessant sind.
JS-Erfahrung ist bei mir gen Null. Vieles habe ich mir im Internet zusammengesucht, aber auch ChatGPT habe ich zur Unterstützung genommen.
Ich komme aber einfach nicht mit meinem Problem weiter.
Den folgenden Code habe ich bei "Eigenschaften" - "Berechnung" unter "Benutzerdefiniertes Berechnungsskript" eingegeben, allerdings bekomme ich im Feld 3 einfach kein Ergebnis raus. Ich habe das Dokument mal auf das wesentliche reduziert und füge es hier mit bei.

Vielen Dank auch schon im Voraus für die Unterstützung.

Schöne Grüße

Daniel

Code: Alles auswählen

// Funktion, um zwei Zeiten im Format "HH:mm" zu addieren und das Ergebnis zu überprüfen
function addTimeFields() {
  var sportField = this.getField("Feld_1");
  var ausbildungField = this.getField("Feld_2");
  var gesamtField = this.getField("Feld_3");
console.log()
  var sportValue = sportField.value;
  var ausbildungValue = ausbildungField.value;

  // Parse der Zeiten in Stunden und Minuten
  var sportParts = sportValue.split(":");
  var ausbildungParts = ausbildungValue.split(":");

  var sportHours = parseInt(sportParts[0], 10);
  var sportMinutes = parseInt(sportParts[1], 10);

  var ausbildungHours = parseInt(ausbildungParts[0], 10);
  var ausbildungMinutes = parseInt(ausbildungParts[1], 10);

  // Addieren der Stunden und Minuten
  var totalHours = sportHours + ausbildungHours;
  var totalMinutes = sportMinutes + ausbildungMinutes;

  // Überprüfen, ob Minuten größer als 60 sind
  if (totalMinutes >= 60) {
    totalHours += Math.floor(totalMinutes / 60);
    totalMinutes = totalMinutes % 60;
  }

  // Formatieren der Ergebniszeit
  var result = (totalHours < 10 ? "0" : "") + totalHours + ":" + (totalMinutes < 10 ? "0" : "") + totalMinutes;

  // Setzen des Ergebnisses im "Feld_3" Feld
  gesamtField.value = result;


  // Überprüfen, ob das Ergebnis unter 50:00 liegt und das Feld rot hervorheben
  if (totalHours < 50) {
    gesamtField.fillColor = color.red;
  } else {
    gesamtField.fillColor = color.transparent; // Zurücksetzen der Hervorhebung
  }
}

// Funktion aufrufen, wenn die Felder geändert werden
this.getField("Feld_1").onChange = addTimeFields;
this.getField("Feld_2").onChange = addTimeFields;
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten