Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
ali0013
Beiträge: 7
Registriert: 29.03.2010, 14:59

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Beitrag von ali0013 » 12.07.2012, 17:42

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!


Benutzeravatar
Merklin
Beiträge: 1857
Registriert: 04.04.2009, 17:03

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Beitrag von Merklin » 13.07.2012, 01:11

Hallo ali,

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

VG Merklin


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

ali0013
Beiträge: 7
Registriert: 29.03.2010, 14:59

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Beitrag von ali0013 » 13.07.2012, 11:11

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!


Firefox012
Beiträge: 90
Registriert: 02.04.2013, 11:17

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Beitrag von Firefox012 » 18.02.2015, 20:43

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Beitrag von armine » 23.02.2015, 13:37

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Firefox012
Beiträge: 90
Registriert: 02.04.2013, 11:17

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Beitrag von Firefox012 » 01.03.2015, 13:32

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





Firefox012
Beiträge: 90
Registriert: 02.04.2013, 11:17

Uhrzeiten addieren/subtrahieren mit JavaScript/Formcalc

Beitrag von Firefox012 » 16.03.2015, 20:48

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
[/*]
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten