|
Voor een applicatie waarvan de einddatum berekend moet worden door een aantal maanden bij de startdatum op te tellen wou ik voorkomen dat die datum in een weekend valt.
Door in een lus te controleren of de waarde van @BusinessDays 0 is wordt er zo nodig een dag bij opgeteld totdat de uitkomst 1 is:
dstart:=@Adjust(projStartDate;0;10;0;0;0;0); n := @BusinessDays(dstart;dstart;1:7); @While(n = 0; dstart:=@Adjust(dstart;0;0;1;0;0;0); n := @BusinessDays(dstart;dstart;1:7)); dstart
De formule doet het volgende: de eindatum moet 10 maanden verder dan de startdatum liggen, dus met @Adjust wordt de startdatum aangepast. Nu bekijken we met de formule @Businessdays of die dag een werkdag is of niet, zo niet dan kijken we of de volgende dag een werkdag is, net zo lang tot de werkdag gevonden is. Dit is dan de einddatum waarop in dit geval een herinnering in de Agenda werd geplaatst...
|