Räkna bara vardagar

ASP

9 svar · 194 visningar · startad av Rossifumi

Medlem sedan okt. 20001 558 inlägg
Trådstart#1

Hejsan...

Nu har jag kört fast rejält. Jag vill bara räkna antalet vardagar imellan två datum, är det möjligt?

Medlem sedan dec. 200012 464 inlägg
#2

Det är inte så enkelt, om du vill ta hänsyn till rörliga helgdagar och sådant.

Gäller det bara att ta bort lördag och söndag är det väl inte så knepigt.

Medlem sedan okt. 20001 558 inlägg
#3

Hur :q ;)

Medlem sedan dec. 200012 464 inlägg
#4
function weekdays(d1,d2)
days = datediff("D",d1,d2)
weeks = datediff("w",d1,d2)
if weekday(d1,vbMonday) < weekday(d2,vbMonday) then
   days = days - 2*weeks
else
   days = days - 2*(weeks-1)
end if
weekdays = days
end function

För att ta bort lördag/söndag så kan du ju utgå från det. Den fungerar förmodligen inte om något av datumet är en lördag eller en söndag. Orkar inte testa mer.

För att ta hänsyn till andra helgdagar så får man nog lägga upp en tabell för dem och räkna efter hur många som faller inom det aktuella intervallet.

Medlem sedan okt. 20001 558 inlägg
#5

Skall testa detta under morgondagen :)
Behöver bara tabort Lör/Sön.

TACK :)

Medlem sedan dec. 20002 526 inlägg
#6

vad har hänt med din sida Rossifumi, för det är la inte du som gjort den man kan komma till nu? *snyft*

Medlem sedan okt. 20001 558 inlägg
#7

Vilken sida snackar du om?

Medlem sedan okt. 20001 558 inlägg
#8

LarsG >>

Det funkar nästan.
Ifall jag skriver som följer så får jag svaret 8:a.

<%
Function weekdays(d1,d2)
	days = datediff("D",d1,d2)
	weeks = datediff("w",d1,d2)

		if weekday(d1,vbMonday) < weekday(d2,vbMonday) then
			days = days - 2*weeks
		else
			days = days - 2*(weeks-1)
		end if
weekdays = days
End Function

temp = weekdays("2001-08-03","2001-08-09")
Response.Write temp
%>

Vet du vad som är fel?

MVH

Medlem sedan dec. 200012 464 inlägg
#9

Ja.

Function weekdays(d1,d2)
days = datediff("D",d1,d2)

if days <= 7 then
   days = days - 2
else
weeks = datediff("w",d1,d2)
if weekday(d1,vbMonday) < weekday(d2,vbMonday)  then
days = days - 2*weeks
else
days = days - 2*(weeks-1)
end if
end if
weekdays = days
End Function
Medlem sedan okt. 20001 558 inlägg
#10

Nu verkar den funka :)

TACK LarsG :e

262 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)