Hier noch die von Peter angefragte Lösung, die auch eine Liste von Tagen berücksichtigt, die nicht Arbeitstag sind.
x:= @Adjust ( @Today; 0; 0; 3; 0; 0; 0 );
EXCLUDED_DAYS_OF_WEEK:= 1:7;
EXCLUDED_DATES:= @ToTime ( "[17.01.2011]":"[01.02.2011]" );
_result:= @BusinessDays (
x ; x ;
EXCLUDED_DAYS_OF_WEEK;
EXCLUDED_DATES);
@If ( _result=0;
@Do (
s := x ;
d:= s;
n := 0;
@While ( n < 1;
d:= @Adjust ( d; 0; 0; 1; 0; 0; 0 );
n := @BusinessDays ( s; d; EXCLUDED_DAYS_OF_WEEK; EXCLUDED_DATES )
)
);
d:= x);
@Prompt( [Ok]; ""; @Text ( d ) )
x wird auf einen Wert @Today + 3 Tage gesetzt
Dann wird geprüft, ob das neue Datum ein Arbeitstag ist. Was ein Arbeitstag ist, wird durch die Parameter bei @businessDays festgelegt.
Ist das neue Datum kein Arbeitstag, dann wird in einer Schleife das Datum um einen Tag erhöht und wieder geprüft.
Das geschieht so lange, bis das Datum auf einen gültigen Arbeitstag fällt.
Die Funktion verwenden wir übrigens in !!HELP!! bei der Berechnung der Bearbeitungszeit eines Tickets.
Hier noch die Lösung in LS
http://www.eknori.de/2007-06-10/adjust-datetime-to-next-business-day/
http://www.eknori.de/2007-06-16/businessdays-in-ls/
http://www.eknori.de/2007-06-16/adjust-datetime-to-next-business-day-part-ii/