A ver que te parece esta primera aproximación, así a lo rápido creo que es lo que necesitas, pero pruébalo bien:
Código ASP:
Ver original<%
if Request("FechaInicial") <> "" and Request("NumDias") <> "" Then
fFechaInicial = CDate(Request("FechaInicial"))
iDiasIncrementar = CInt(Request("NumDias"))
fFechaFinal = DateAdd("d", iDiasIncrementar, CDate(Request("FechaInicial")))
iDiasEntreFechas = DateDiff("d", fFechaInicial, fFechaFinal)
iDiasNoHabiles = FinesDeSemana(fFechaInicial, fFechaFinal)
fFechaResultante = DateAdd("d", iDiasEntreFechas+iDiasNoHabiles, fFechaInicial)
if FinesDeSemana(fFechaInicial, fFechaResultante) > 0 Then
fFechaResultante = DateAdd("d", iDiasEntreFechas+FinesDeSemana(fFechaInicial, fFechaResultante), fFechaInicial)
End If
Response.Write "Fecha Inicial: " & Request("FechaInicial") & "<br>"
Response.Write "Dias hábiles a considerar: " & Request("NumDias") & "<br>"
Response.Write "<hr><br>"
Response.Write "Total de dias " & iDiasEntreFechas & "<br>"
Response.Write "Total de dias no hábiles: " & iDiasNoHabiles & "<br>"
Response.Write "Fecha resultante: " & fFechaResultante & "<br>"
Response.Write "<hr><br>"
End If
Function FinesDeSemana(FechaIni, FechaFin)
aux = DateDiff("ww", FechaIni, FechaFin, vbSaturday) + DateDiff("ww", FechaIni, FechaFin, vbSunday)
If Weekday(FechaIni, vbSunday) = 1 Then aux = aux + 1 End if
If Weekday(FechaIni, vbSaturday) = 1 Then aux = aux + 1 End If
FinesDeSemana = aux
End Function
%>
<form>
Fecha Inicial: <input type="text" name="FechaInicial" value="01/01/2010"><br>
Dias hábiles: <input type="text" name="NumDias" value="20"><br>
<input type="submit" value="Calcular">
</form>