Anzahl Tage berechnen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
S0885818
Beiträge: 20
Registriert: 13.02.2013, 08:41

Anzahl Tage berechnen

Beitrag von S0885818 » 14.07.2014, 15:44

Hallo zusammen,

folgendes Problem:

Aus "DATUM1" (= Reiseantritt) und "DATUM2" (= Reiseende) soll die Anzahl der Tage ermittelt werden.

Ich habe in diesem Forum schon einige Beiträge zu diesem Thema gelesen und versucht anhand der Beispiele eine Lösung zu finden. Aber das funktioniert irgendwie nicht. (Entschuldigt, ich bin hier voll der Laie! :()

Im Textfeld "TAGE" habe ich im calculate-Event das Java-Script hinterlegt. (Siehe Dateianhang).

Hat jemand eine Lösung für mich bzw. kann mir sagen, wo ich da Mist gebaut habe?

Vielen Dank.

Sonnige und weltmeisterliche Grüße

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

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Anzahl Tage berechnen

Beitrag von nele_sonntag » 14.07.2014, 16:01

Hallo Gabi,

hab zwar nur eine Minute, aber mir ist schon aufgefallen, dass Du die Syntax vom Acrobat benutzt, diese funktioniert nicht im LCD.

Code: Alles auswählen

this.getField("DATUM1").value;
LG Mandy

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Anzahl Tage berechnen

Beitrag von nele_sonntag » 14.07.2014, 16:08

Mit FORMCALC im Calculate Event funktioniert es folgendermaßen:

Code: Alles auswählen

if(Date2Num(DATUM1, "YYYY-MM-DD") > 0 AND Date2Num(DATUM2, "YYYY-MM-DD") > 0)then
    $ = Date2Num(DATUM2, "YYYY-MM-DD") - Date2Num(DATUM1, "YYYY-MM-DD") + 1
else
    $ = null
endif

S0885818
Beiträge: 20
Registriert: 13.02.2013, 08:41

Anzahl Tage berechnen

Beitrag von S0885818 » 15.07.2014, 15:59

Hallo Mandy,

das Bankensystem OSPlus kann leider kein FORMCALC.

Was habe ich denn noch für Möglichkeiten?

Vielen Dank für die tolle Unterstützung in diesem Forum! Das muss man wirklich mal erwähnen. :):):)

LG
Gabi

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Anzahl Tage berechnen

Beitrag von nele_sonntag » 15.07.2014, 18:05

Liebe Gabi,

hatte Dich nicht vergessen. :) Kam einfach noch nicht dazu.
Anbei eine Datei. Sollte die das nicht zu 100% abdecken, melde dich bitte noch einmal.

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

S0885818
Beiträge: 20
Registriert: 13.02.2013, 08:41

Anzahl Tage berechnen

Beitrag von S0885818 » 16.07.2014, 08:00

Liebe Mandy,

ich wollte auch überhaupt keinen Stress machen :)

Danke für die schnelle Lösung. Es funktioniert!!! Eine Kleinigkeit hab ich noch:

Wenn ich z. B. 01. 07. - 03.07.2014 eingebe, kommt als Ergebnis = 2 Tage. Eigentlich wären es drei. Ich habe in der folgenden Zeile einfach noch "+1" ergänzt.

[fontsize=2]Textfeld1.rawValue [/fontsize][fontsize=2][fontsize=2]=[/fontsize][/fontsize][fontsize=2] Math.round((Number(nDate1) [/fontsize][fontsize=2][fontsize=2]-[/fontsize][/fontsize][fontsize=2] Number(nDate2))[/fontsize][fontsize=2][fontsize=2]/[/fontsize][/fontsize][fontsize=2]1000[/fontsize][fontsize=2][fontsize=2]/[/fontsize][/fontsize][fontsize=2]60[/fontsize][fontsize=2][fontsize=2]/[/fontsize][/fontsize][fontsize=2]60[/fontsize][fontsize=2][fontsize=2]/[/fontsize][/fontsize][fontsize=2]24)[/fontsize][fontsize=2][fontsize=2]+[/fontsize][/fontsize][fontsize=2]1;[/fontsize]

Kann ich das so machen? (Also das Ergebnis stimmt schon mal!)

[fontsize=2]DANKE!!!!!!!!!!!!!!!! Du bist die Beste :)[/fontsize]

[fontsize=2]LG
Gabi
[/fontsize]

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

Anzahl Tage berechnen

Beitrag von armine » 16.07.2014, 15:20

Hallo Gabi,

dass das Ergebnis stimmt ist schon mal toll und Mandy ist unstrittig die Beste. Schwierigkeiten macht mir dein Code.
01. 07. - 03.07.2014 sind drei Tage, aber die Differenz – wie sie z.B. für die Zinsberechnung oder die Anzahl von Übernachtungen gebraucht wird – sind halt zwei Tage. Man muss also wissen, wozu die Berechnung dienen soll.

nDate1 und nDate2 scheinen bei dir Strings mit Zeitangaben in Millisekunden zu sein. Die hat ein Anfänger in Sachen JavaScript nicht zufällig zur Hand, sondern muss sie dem Date-Object erst entlocken.
das geht z.B. mit:

var t_früher = DateTimeField1.rawValue.split("-") ;
var t_später = DateTimeField2.rawValue.split("-") ;
this.rawValue = (new Date(t_später[0], --t_später[1], t_später[2]) - new Date(t_früher[0], --t_früher[1], t_früher[2])) / 1000/60/60/24

Gegebenenfalls muss man dann noch eins aufaddieren, wenn der erste und der letzte Tag mitzählen sollen.

vg armine

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Anzahl Tage berechnen

Beitrag von nele_sonntag » 16.07.2014, 18:29

Hallo Ihr Lieben (armine und Gabi),

@armine: Für mich bist Du der Beste!! Aber schön, es mal über mich zu lesen. :) Danke dafür!!

@Gabi:
Ich wollte am Anfang eine xdp hochladen, das ging nicht, somit war mein ganzer Hinweistext weg. Beim ersten Entwurf stand nämlich drin, dass du ggf. einen Tag addieren musst. :) ..je nachdem zu was die Berechnung dienen soll. :)

GLG Mandy

S0885818
Beiträge: 20
Registriert: 13.02.2013, 08:41

Anzahl Tage berechnen

Beitrag von S0885818 » 22.07.2014, 09:58

Hallo ihr Lieben,

Danke euch beiden!! Ihr seid die Besten!!! :):):)

Muss mir unbedingt überlegen, was ich euch Gutes tun könnte.

GLG

Gabi

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Anzahl Tage berechnen

Beitrag von nele_sonntag » 22.07.2014, 18:04

Danke Dir schon einmal für's Feedback!! Das ist auch schon mal sehr viel wert. :D
GLG Mandy

Antworten