Domino 9 und frühere Versionen > ND9: Entwicklung

Nächste Wochentage ausgehend von heute berechnen

<< < (3/4) > >>

Peter Klett:

--- Zitat von: Tim Pistor am 17.10.16 - 22:30:56 ---Abendliche Formelrätsel....  ;D

--- Ende Zitat ---
Ja, besser als Fernsehen ...

Spannend ist nun, was wirklich gebraucht wird. Bei Euren Ergebnislisten ist das erste Element immer der nächste Tag (bzw. nur die Liste der Wochentage), wenn man daraus z.B. den nächsten Donnerstag ermitteln möchte, muss man durch alle Tage durchlaufen, bis man den gefunden hat. Bei mir ist das immer _n5 oder Tag5. So ganz klar ist mir die Aufgabenstellung allerdings diesbezüglich nicht, wobei meine Alternative zur Darstellung der folgenden Wochentage keine Resonanz gefunden hat, also vermutlich nicht das Gewünschte ist ...

theBastian:
Guten Morgen allerseits,

erst mal Danke für die vielen Antworten. Da es noch ein wenig unklar ist, was ich brauche, versuche ich das noch mal genauer zu beschreiben.

Ein Mitarbeiter soll einen Liefertermin festlegen. Er kann aber nur an bestimmten Tagen beliefert werden. Diese Tage liegen als Textliste vor.
Beispiel 2:4 = mögliche Liefertermine sind Montag und Mittwoch.
Zwischen Bestellungtag (heute) und Liefertag müssen mindestens zwei Tage liegen (Wochenende nicht berechnen), also ausgehend von heute + 2 Tage sind das der kommende Montag und der kommende Mittwoch.
In einer Dialogliste soll er also diese zwei Werte sehen und einen auswählen können.

Ich dachte also, dass ich mir erst mal alle möglichen zukünftigen Wochentage ausgehend von heute + 2 berechne und dann eine Liste baue:


--- Code: ---NaechsterMontag :=
NaechsterDienstag :=
NaechsterMittwoch :=

@If(@Contains(Textliste ; 2 ; NaechsterMontag ; "") :
@If(@Contains(Textliste ; 3 ; NaechsterDienstag ; "") :
@If(@Contains(Textliste ; 4 ; NaechsterMittwoch ; "") ...

--- Ende Code ---

Peter Klett:

--- Code: ---_liefertage := 2 : 4;
_starttag := @Adjust (@Today; 0; 0; 2; 0; 0; 0);
_w := @Modulo (_liefertage - @Weekday (_starttag) + 6; 7) + 1;
@For (_i := 1; _i <= @Elements (_w); _i := _i + 1;
_liste := _liste : @Text (@Adjust (_starttag; 0; 0; _w [_i]; 0; 0; 0))
);
_liste := @Trim (_liste);
_ergebnis := @Prompt ([OkCancelList]; "Liefertag"; "Wählen Sie bitte den Liefertag aus"; _liste [1]; _liste)

--- Ende Code ---

Es gibt hier aber nicht immer fertige Lösungen, das hier hat einfach mal Spaß gemacht ;)

EDIT: Das mit dem nicht zu berücksichtigenden Wochenende ist da natürlich noch nicht dabei, das müsste bei der Berechnung des _starttag erfolgen ...

EDIT2: Und Du solltest eine Möglichkeit zur Eingabe eines abweichenden Liefertermins schaffen, oder mindestens eine Woche vor Weihnachten in Urlaub gehen  ;D

Tim Pistor:

--- Code: ---dLst := "Sonntag" : "Montag" : "Dienstag" : "Mittwoch" : "Donnerstag" : "Freitag" : "Samstag" ;
start := @Today;
dtList := @Transform( @TextToTime(@Explode(@TextToTime(@Text(@Adjust(start;0;0;@If(@Weekday(start)= 6; 2; @Weekday(start)= 7;1;0) + 3 ;0;0;0)) + "-" + @Text(@Adjust(start;0;0;@If(@Weekday(start)= 6; 2; @Weekday(start)= 7;1;0) + 9;0;0;0)))));
"item";
@Text(@Weekday( item )) + "#" + dLst[@Weekday( item )] + " " + @Text(@Date(item))) ;
@Trim(@Right(dtList ; "2#") : @Right(dtList ; "4#"))

--- Ende Code ---

Bisschen "obfuscated" aber kann man ja noch aufdröseln....

Edit: Korrekturen

theBastian:
Danke Peter, habe ich keine fertige Lösung erwartet. ;)

@Tim: Krass. ;) Schaue ich mir auch an.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln