'---------------------------------------------------------------------------------------
' Procedure : SumaHabiles
' DateTime : 07/10/05
' Author : José Bengoechea Ibaceta(Chea)
' Purpose : Suma días hábiles a una fecha pera obtener una fecha de fin de plazo
' Estás autorizado a utilizar este código dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web, por favor,
' contactar con el autor en
'
' UA@bengoechea.net
'---------------------------------------------------------------------------------------
Public Function SumaHabiles(fechaInicio As Date, Totaldías As Long, Optional _
SabadoNoHabil As Boolean)
Dim fechatemp As Date, Sabados As Long, Domingos As Long, Festivos As Long
fechatemp = DateAdd("d", Totaldías, fechaInicio)
If SabadoNoHabil Then
Sabados = DateDiff("ww", fechaInicio, fechatemp, vbSaturday)
End If
'Ahora contamos los domingos de ese periodo; se los tendremos que sumar
Domingos = DateDiff("ww", fechaInicio, fechatemp, vbSunday)
Festivos = DCount("*", "Festivos", "[fecha] between #" & Format(fechaInicio + 1, _
"mm-dd-yy") & "# and #" & Format(fechatemp, "mm-dd-yy") & "#")
' Como en los días añadidos tambén puede haber sábados, domingos y festivos,
' lo mejor es usar una llamada recursiva a SumaHábiles para
' añadirlos
If Sabados > 0 Or Domingos > 0 Or Festivos > 0 Then
fechatemp = SumaHabiles(fechatemp, Sabados + Domingos + Festivos, _
SabadoNoHabil)
End If
SumaHabiles = fechatemp
End Function
|