Okay, nach Feiertagen war nicht gefragt, da wird das komplexer ;D
Man muss sich aber nicht unbedingt mit NotesDateTime einen abquälen - das Datum ist ja nur eine Zahl:
Dim vDate As Variant
Dim vEndDate As Variant
Dim iPeriod As Integer
Dim iWorkingDays As Integer
iPeriod = 10
vEnddate = Now + iPeriod
iWorkingDays = 0
For vDate = Now To vEndDate
If (Weekday (vDate) <> 1) And (Weekday (vDate) <> 7) Then
iWorkingDays = iWorkingDays + 1
End If
Next
Messagebox "Arbeitstage in den nächsten " & Cstr (iPeriod) & " Tage: " & Cstr (iWorkingDays)
Achtung: Hierbei wird der aktuelle Tag mitgezählt, ansonsten müsste es heissen: Now + 1 To vEndDate + 1.
HTH,
Bernhard
So. Hier ist meine Lösung.
Function addWorkDays(iPeriod As Integer)
'// Diese Funktion zählt zum heutigen Datum die übergebenen Anzahl Tage hinzu
'// ohne das aktuelle Datum zu berücksichtigen
Dim iday As Integer
'Tagesdatum als aktuelles festlegen
Dim dateTime As New NotesDateTime( Now )
While iday < iPeriod
'Zum Datum einen Tag hinzuzählen
Call dateTime.AdjustDay(1)
'Prüfen, ob Samstag oder Sonntag
If (Weekday (dateTime.DateOnly) <> 1) And (Weekday (dateTime.DateOnly) <> 7) Then
iday = iday + 1
End If
Wend
'// Rückgabe des neuen Datums
addWorkDays = dateTime.DateOnly
End Function
Bitte melden, wenn ihr was findet, dass da nicht hingehört.
Grüsse Hampa