Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: cebolina am 11.04.12 - 13:16:36

Titel: Fälligkeitsdatum aus Liste anhand Vergleichsdatum berechnen
Beitrag von: cebolina am 11.04.12 - 13:16:36
Hallo zusammen,

ich habe ein sortiertes Mehrfachfeld "Intervall" (Date/Time) mit diesen Werten:
15.02.2012
20.05.2012
25.06.2012
10.07.2012

Die Anforderung ist, im Querysave mittels Script anhand eines Vergleichsdatums (Date/Time), den nächsten Fälligkeitstermin zu berechnen.

Beispiel 1:
Vergleichsdatum = 30.05.2012
Soll-Ergebnis = 25.06.2012

Liegt das Vergleichsdatum aber nach dem letzten Datum der Liste, muss das Ergebnis der nächste Termin im Folgejahr sein.

Beispiel 2:
Vergleichsdatum = 01.08.2012
Soll-Ergebnis = 15.02.2013

Beispiel 3:
Vergleichsdatum = 20.02.2013
Soll-Ergebnis = 20.05.2013

Die Jahreszahlen in der Datumsliste spielen also eigentlich keine Rolle. Ich brauche immer das nächste Datum in Abhängigkeit zu einem Vergleichsdatum.

Wie geht das in Script?
Kann mir bitte jemand den Weg zeigen?

Danke und Gruß
Stefan
Titel: Re: Fälligkeitsdatum aus Liste anhand Vergleichsdatum berechnen
Beitrag von: koehlerbv am 11.04.12 - 13:30:49
Hier wird Dir nichts bleiben, als durch Deine Liste zu loopen und zu schauen, ob das gerade gefundene Listenelement grösser ist als Dein Vergleichsdatum.
Wenn ja - Treffer, Ende.
Kommst Du mit traurigem Blick aus der Schleife heraus, musst Du dies wiederholen und dabei vor dem Vergleich die Listenwerte um 1 Jahr erhöhen.
- unsauber: Einfach Listenwert + 365 (könnte ja reichen  ;D)
- sauber: Listenwert mit Day, Month, Year + 1 und Datenumber umbauen.

HTH,
Bernhard

PS: Das ganze dann natürlich in eine Funktion mit Parameter, ob Du mit dem Jahr der Listenwerte arbeiten möchtest oder um x Jahre erhöht.
Titel: Re: Fälligkeitsdatum aus Liste anhand Vergleichsdatum berechnen
Beitrag von: cebolina am 11.04.12 - 14:22:29
Hallo Bernhard,

würde es nicht reichen, die Jahreszahlen meiner Datumsliste durch die Jahreszahl des Vergleichsdatums zu ersetzen?
Wenn ja, wie?

Dann über die Elemente der neuen Liste loopen, bis das gerade gefundene Listenelement größer ist als das Vergleichsdatum.

Gruß Stefan
Titel: Re: Fälligkeitsdatum aus Liste anhand Vergleichsdatum berechnen
Beitrag von: koehlerbv am 11.04.12 - 14:28:44
Das ist eine andere Möglichkeit - ich wusste nicht, dass Du die Liste verändern darfst.

Entweder, Du gehst den umständlichen Weg über NotesDateTime und AdjustYear, oder Du nimmst einen Einzeiler mit Datenumber (Year + 1, Month, Day).

Bernhard
Titel: Re: Fälligkeitsdatum aus Liste anhand Vergleichsdatum berechnen
Beitrag von: cebolina am 12.04.12 - 08:05:05
Hallo Bernhard,

ich habe es nach deinem ersten Ansatz umgesetzt.

Ich übergebe einer Function die Datumsliste, das Vergleichsdatum und einen Zähler.
Die Function vergleicht in einer Schleife jedes Element der Liste mit dem Vergleichsdatum.
Habe ich kein Ergebnis, wird die Function mit Zähler = 1 erneut aufgerufen (der Zähler erhöht die Jahreszahl der Liste).
Das mache ich solange, bis ich ein Ergebnis bekomme.

Danke und Gruß
Stefan