Werktage pro Monat eines Von- und Bis-Zeitraums
Ich möchte die Werktage pro Monat eines Von- und Bis-Zeitraums bestimmen.
In einer Tabelle habe ich ein von-und bis-Datumsfeld. Bei Monatsübergreifenden Zeiten,
möchte ich nur die Anzahl Werktage des von mir ausgewählten Monats ausgeben.
Beispiel:
VonDatum BisDatum ausgewählte_Monat Werktage_ausgewählteMonat
18.02.2008 12.03.2008 2 10
02.03.2008 05.03.2008 2 0
11.02.2008 13.02.2008 2 3
25.02.2008 14.03.2008 2 15
Bitte hilfe!!!
In einer Tabelle habe ich ein von-und bis-Datumsfeld. Bei Monatsübergreifenden Zeiten,
möchte ich nur die Anzahl Werktage des von mir ausgewählten Monats ausgeben.
Beispiel:
VonDatum BisDatum ausgewählte_Monat Werktage_ausgewählteMonat
18.02.2008 12.03.2008 2 10
02.03.2008 05.03.2008 2 0
11.02.2008 13.02.2008 2 3
25.02.2008 14.03.2008 2 15
Bitte hilfe!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 81365
Url: https://administrator.de/forum/werktage-pro-monat-eines-von-und-bis-zeitraums-81365.html
Ausgedruckt am: 23.12.2024 um 18:12 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
lade Dir mal die KnowHow MDB herunter
Dort findest Du die optimale lösung Deines Problems.
BG, Felix -misterdemeanor-
lade Dir mal die KnowHow MDB herunter
Dort findest Du die optimale lösung Deines Problems.
BG, Felix -misterdemeanor-
Wenn es Dir aber wirklich nur darum geht Sa´s und So´s auszuschließen, sprich keine Berücksichtigung von Feiertagen:
Quelle:http://www.aboutvb.de/khw/artikel/khwdatediffworkdays.htm
Public Function DateDiffWorkdays(Date1 As Date, Date2 As Date, Optional ByVal SaturdayIsWorkday As Boolean) As Integer
Dim nDay1 As Date
Dim nDay2 As Date
Dim nDays As Integer
Dim nWeeks As Integer
Dim nWeekday1 As Integer
Dim nWeekday2 As Integer
If Date1 < Date2 Then
nDay1 = CDate(CLng(CDbl(Date1)))
nDay2 = CDate(CLng(CDbl(Date2)))
Else
nDay1 = CDate(CLng(CDbl(Date2)))
nDay2 = CDate(CLng(CDbl(Date1)))
End If
nDays = nDay2 - nDay1
nWeeks = nDays \ 7
nWeekday1 = Weekday(nDay1, vbMonday)
nWeekday2 = Weekday(nDay2, vbMonday)
If SaturdayIsWorkday Then
nDays = nDays - nWeeks
Select Case nWeekday1
Case 7
Select Case nWeekday2
Case 7
Case Else
nDays = nDays - 1
End Select
Case Else
Select Case nWeekday2
Case 7
Case Else
If nWeekday1 > nWeekday2 Then
nDays = nDays - 1
End If
End Select
End Select
Else
nDays = nDays - 2 * nWeeks
Select Case nWeekday1
Case 6
Select Case nWeekday2
Case 7
nDays = nDays - 1
Case Else
nDays = nDays - 2
End Select
Case 7
Select Case nWeekday2
Case Is < 7
nDays = nDays - 1
End Select
Case Else
Select Case nWeekday2
Case 6
Case 7
nDays = nDays - 1
Case Else
If nWeekday1 > nWeekday2 Then
nDays = nDays - 2
End If
End Select
End Select
End If
DateDiffWorkdays = nDays
End Function
Quelle:http://www.aboutvb.de/khw/artikel/khwdatediffworkdays.htm