Domino 9 und frühere Versionen > ND6: Entwicklung

Datum Heute + 3 Tage anzeigen, dabei Wochenende überspringen

<< < (2/3) > >>

Banni:
Danke für die schnellen Antworten.
@adjust war der entscheidende Hinweis.

Habs jetzt mit folgender Formel hinbekommen:

mydate := @Now;
@If( @Weekday(mydate) + 3 >= 7; @Adjust(mydate;0;0;5;0;0;0); @If( @Weekday(mydate) = 1; @Adjust(mydate;0;0;1;0;0;0); @Adjust(mydate;0;0;3;0;0;0)))


--- Zitat von: Peter Klett am 12.01.11 - 08:44:20 ---...und was ist mit Feiertagen, womöglich auch noch regionalen?

--- Ende Zitat ---
Da die Anzeige "nur" ein Richtwert sein soll, können Feiertage an dieser Stelle ignoriert werden. Trotzdem danke für den Hinweis.

Jan

eknori (retired):
Hier noch die von Peter angefragte Lösung, die auch eine Liste von Tagen berücksichtigt, die nicht Arbeitstag sind.


--- Code: ---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 ) )
--- Ende Code ---


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/

Peter Klett:
Hallo Ulrich,

schicke Lösung, @BusinessDays war mir bisher unbekannt.

Meine Frage war allerdings mehr als Hinweis für Jan gedacht ...

Banni:
Hallo Ulrich,

wirklich super, Danke.
Noch eine Frage dazu:
Gibt es eine einfache Möglichkeit, bei @businessdays das Enddatum auf "open end" zu definieren oder muss man hier selbst stricken? Ich hatte für letzteren Fall an den Umweg mit einem Profildokument gedacht, wo das vorläufige Enddatum drinsteht und man dieses regelmäßig verlängert, z.B. mit einem Agent.

Grüß Jan

eknori (retired):
Definiere "open end". wenn du auf ein unbestimmtes Datum verweisen moechtest, warum willst du dann checken , ob es gueltig ist?

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln