Rubrik: Datum/Zeit und Timer · Datums- und Zeitfunktionen | VB-Versionen: VB4, VB5, VB6 | 13.11.00 |
Wochenendtage zwischen zwei Datumswerten Für manche Anwendungen muß man die Anzahl der Wochenendtage zwischen zwei Datumswerten ermitteln. Als Beispiel sei die Ermittlung der Urlaubstage fü... | ||
Autor: Dieter Otter | Bewertung: | Views: 16.610 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Für manche Anwendungen muß man die Anzahl der Wochenendtage zwischen zwei Datumswerten ermitteln. Als Beispiel sei die Ermittlung der Urlaubstage für eine 5 oder 6-Tage Woche genannt. Mittels der DateDiff-Funktion kann man ganz leicht die Anzahl der Tage zwischen zwei Datumswerten berechnen. Jetzt subtrahieren Sie einfach die Anzahl der dazwischenliegenden Wochenendtage. Die Anzahl der Wochenendtage ermittelt nachfolgende Prozedur:
Public Sub Wochenendtage(ByVal Datum1 As Variant, _ ByVal Datum2 As Variant, SaCount As Integer, _ SoCount As Integer) Dim BisDatum As Variant Dim Datum As Variant Dim WTag As Integer Dim Jahr As Integer Dim Monat As Integer Dim Tag As Integer Dim SoCount As Integer Dim SaCount As Integer ' Datum 1 Jahr = Val(Format$(Datum1, "yyyy")) Monat = Val(Format$(Datum1, "mm")) Tag = Val(Format$(Datum1, "dd")) ' Datum 2 BisDatum = Format$(Datum2, "yyyymmdd") Datum = DateSerial(Jahr, Monat, Tag) While Format$(Datum, "yyyymmdd") <> BisDatum WTag = Format$(Datum, "w") If WTag = 1 Then ' Sonntag SoCount = SoCount + 1 ElseIf WTag = 7 Then ' Samstag SaCount = SaCount + 1 End If Tag = Tag + 1 Datum = DateSerial(Jahr, Monat, Tag) Wend End Sub
Anmerkungen:
Die Prozedur erwartet vier Parameter:
- Datum1: Datumswert vom Typ Date/Variant
- Datum2: Datumswert vom Typ Date/Variant
- SaCount: Rückgabewert - Anzahl Samstage
- SoCount: Rückgabewert - Anzahl Sonntage