vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datum/Zeit und Timer · Datums- und Zeit-Funktionen   |   VB-Versionen: VB2005, VB2008, VB201018.04.11
Netto-Arbeitstage einer angegebenen Zeitspanne ermitteln

Ermittelt für zwei angegegebene Daten die Anzahl der dazwischen liegenden Arbeitstage.

Autor:   Dieter OtterBewertung:  Views:  16.961 
www.tools4vb.deSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nachfolgende Funktion liefert die Anzahl der Arbeitstage (Mo - Fr), die zwischen dem angegebenen Start-Datum und End-Datum liegen.

Auf diese Weise lassen sich bspw. schnell die Netto-Arbeitstage eines Monats ermitteln - wie gesagt, jedoch ohne Berücksichtigung von Feiertagen!

''' <summary>
''' Ermittelt die Netto-Arbeitstage des angegebenen Zeitraums
''' </summary>
''' <param name="DateStart">Startdatum</param>
''' <param name="DateEnd">Enddatum</param>
''' <returns>Nettoarbeitstage ohne Feiertagsberücksichtigung</returns>
Public Function WorkingDays(ByVal DateStart As Date, ByVal DateEnd As Date) As Integer
  ' Zeit-Differenz in Tagen
  Dim Days As Integer = DateEnd.Subtract(DateStart).Days + 1
  Dim DaysWeekend As Integer = 0
 
  ' Anzahl Wochenend-Tage ermitteln
  For i As Integer = 0 To Days - 1
    Select Case DateStart.AddDays(i).DayOfWeek
      Case DayOfWeek.Saturday, DayOfWeek.Sunday
        DaysWeekend += 1
    End Select
  Next
 
  ' Arbeitstage = Anzahl Tage - Wochenend-Tage
  Return Days - DaysWeekend
End Function

Aufrufbeispiel:
Sie möchten wissen, wieviele Arbeitstage der Monat April hat.

Dim DateStart As New Date(Now.Year, 4, 1)
Dim DateEnd As Date = DateStart.AddMonths(1).AddDays(-1)
 
MsgBox("Arbeitstage im April: " & WorkingDays(DateStart, DateEnd))



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.