Seite 1 von 1

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Verfasst: 12.07.2012, 17:42
von ali0013
Hallo zusammen,

habe eine dynamische Tabelle auf dem interaktiven PDF-Formular, für jeden Arbeitstag gibt es eine Tabellenzeile, neue Zeilen können mit einem Button hinzugefügt werden, so dass für einen Tag mehrere Tätigkeiten erfasst werden können. Pro Zeile gibt es unter anderem 2 Eingabefelder für die Arbeitszeiten (Arbeitsbeginn, Arbeitsende). Dort können die Zeiten in Form "08:00" und "18:30" eingetragen werden. Anhand der Eintragungen sollen die geleisteten Stunden errechnet werden (in diesem Fall wären es "10,5"). Komme mit JavaScript einfach nicht weiter mit der Berechnung, kann mir bitte jemand helfen? Alles, was ich zu diesem Thema finde, alle Beispiele und Infos mit Date() bezieht sich auf Datumsberechnungen, und das ist es in diesem Fall nicht - Datum ist immer gleich, es geht also um die Uhrzeit. Bin für jede Hilfe dankbar! Kämpfe schon seit Tagen verzweifelt mit dem Thema.. :(

Es geht mir also darum, dass ich mit JavaScript oder Formcalc für das Feld "Stunden" jeder Zeile den Wert aus "Start" und "Ende" errechne und zuweise.

Danke im Voraus!


Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Verfasst: 13.07.2012, 01:11
von Merklin
Hallo ali,

kannst du das verwenden?
Übrigens hier aus dem Forum, SUFU benutzen. ;););)

VG Merklin



Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Verfasst: 13.07.2012, 11:11
von ali0013
Hallo Merklin!

Danke, danke, danke!! Ich habe hier einige Beiträge gefunden, die aber alle leider mit dem Datum gerechnet haben.. habe wohl falsch gesucht, sorry. :(

DANKE!


Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Verfasst: 18.02.2015, 20:43
von Firefox012
Hallo Merklin,

gibt es eine Möglichkeit zu dem Beispiel "ali0013.pdf" auch End-Zeiten, welche kleiner sind als die Start-Zeit zu akzeptieren, weil die Endzeit bereits im Folgetag liegt?

Welche Änderung müßte ich im Script durchführen, daß beispielsweise die Eingabe der Startzeit als"7" automatisch zu "07:00" umgewandelt wird?

Danke für deine helfende Unterstützung!



Mit freundlichen Grüßen
Firefox012

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Verfasst: 23.02.2015, 13:37
von armine
Hallo Firefox012,

schade, dass sich Merklin seit einiger Zeit nicht mehr meldet.

Das Valdieren der Zeit habe ich etwas benutzerfreundlicher gemacht. Bei Endzeiten < Startzeit wird nun unterstellt, dass die Endzeit im Folgetag liegt.

vg armine

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Verfasst: 01.03.2015, 13:32
von Firefox012
Hallo armine,

danke für deine klasse Arbeit!!

Jetzt bin ich nur noch ziemlich am  Tüfteln, wo ich die "Pausenzeit" im Script unterbringe!?



Danke für deine Hilfe!


Gruß
Firefox012





Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Verfasst: 16.03.2015, 20:48
von Firefox012
Hallo armine,

bitte um deine Hilfe!

Ich tüftle nun schon seit Tagen daran, eine weitere Spalte für die Pausenzeit zu integrieren, aber ich bekomme die Funktion "Calculate" damit nicht wirklich zum Laufen.

Mit dem u.s. Scripten wird immer um eine volle Stunde falsch (zuviel)gerechnet.

Formular1.Inhalt.Tabelle1[0].Zeile1.totalH::calculate - (FormCalc, client)

var e = Time2Num(endT
[*].editValue,"HH:MM","de_DE")
var s = Time2Num(startT[/*][*].editValue,"HH:MM","de_DE")
var p = Time2Num(Pause[/*][/color][*].editValue,"HH:MM","de_DE")
var Dauer = e - s - p

if (Dauer < 0) then
    Dauer = Dauer + 24*60*60*1000
endif

$ = Dauer  / 3600000

_________________________________________________________

[/*][*] = [Stern]
Was mache ich hier falsch, oder hab' ich nicht berücksichtigt?
Ist dies überhaupt der richtige Ansatz, wenn ich zudem den Pausenwert auf max. 2 Stunden bei der Eingabe  begrenzen möchte?

Formular1.Inhalt.Tabelle1[0].Zeile1.armine::calculate - (FormCalc, client)

if (HasValue(startT) and HasValue(endT)) then
    var tmp = Time2Num(endT.editValue, "HH:MM", "de_DE") - Time2Num(startT.editValue, "HH:MM", "de_DE") - Time2Num(Pause.editValue, "HH:MM", "de_DE")
    if (tmp < 0) then tmp = tmp + 24 * 3600000 endif
    var Std = Floor(tmp / 3600000)
    var Minuten = 100 + (tmp - Std * 3600000) / 60000
    $ = Concat(Std , ":" , Right(Str(Minuten, 3), 2))
else
    $ = "?"
endif

___________________________________________________________

Vielen Dank für deine Unterstützung!

Gruß
Firefox012
[/*]