AspGerman Wiki

Die WerkTage - Funktion erwartet Start- und End-Datum und gibt ein Array zurück, das alle Werktage enthält. Optional kann man im ft""-""Parameter ein Array der bekannten Feiertage übergeben, die dann auch noch aus dem Rückgabe-Array entfernt werden. Hat man keine Feiertage, übergibt man ein leeres Array (Array()).

Für einen schnellen Test auf Feiertage - auch bei grosser Anzahl an Feiertagen und langen Intervallen - wird ein Dictionary verwendet

<%
start = DateSerial(2004,5,27)
ende = DateSerial(2004,6,7)
feiertage = Array(DateSerial(2004,5,31))

wt = WerkTage(start, ende, feiertage)

for each tag in wt
	Response.Write tag & "<br>" & vbCrLf
next

function WerkTage(start, ende, ft)
	dim a() : dim i, c, wd, d
	set d = Server.CreateObject("Scripting.Dictionary")
	for each i in ft
		d(CDate(i)) = 1
	next
	c = 0
	for i = CDate(start) to CDate(ende)
		wd = weekday(i)
		if not (wd=vbSaturday or wd=vbSunday or d.Exists(i)) then
			redim preserve a(c)
			a(c) = i
			c = c + 1
		end if
	next
	WerkTage = a
end function
%>

ScrewTurn Wiki version 2.0.33. Some of the icons created by FamFamFam.