holas hace unos dias postie una peticion de ayuda para mi dilema, y resulta que no lo he podido solucionar. el problema es el siguiente:
tengo 2 fechas dadas por un DTPicker las cuales son de un inicio y un final, resulta que las fechas son para cobrar por el arriendo de maquinarias, y para ello se deben descontar los festivos sabados y domingos, pero solo en algunos casos se descuentan los sabados, ya que en otros NO, he tratado de hacer algo pero la verdad es que nada me resulta, he probado con estos dos codigos que me encontre aqui:
Código:
Mes = "01"
Anio = Mid(Format(MonthView1, "DD/MM/YYYY"), 7, 4)
For j = 1 To 12
For i = 1 To 31
FechaStr = "0" & i & "/" & Mes & "/" & Anio
dia = UCase(Format(FechaStr, "DDDD"))
If IsDate(FechaStr) Then
fecha = CDate(FechaStr)
If dia = "SÁBADO" Or dia = "DOMINGO" Or fecha = "01/01/04" Then
'No cuenta sabados ni domingos ni el 1 de enero que es feriado
contador = contador
Else
contador = contador + 1
End If
End If
Next i
Select Case Mes
Case "01"
Mes = "02"
Case "02"
Mes = "03"
Case "03"
Mes = "04"
Case "04"
Mes = "05"
Case "05"
Mes = "06"
Case "06"
Mes = "07"
Case "07"
Mes = "08"
Case "08"
Mes = "09"
Case "09"
Mes = "10"
Case "10"
Mes = "11"
Case "11"
Mes = "12"
End Select
Next j
MsgBox " Dias Habiles en año " & Anio & " = " & contador
el otro:
Código:
Dim VTotal As Integer
mes = CStr(Cal.Month)
mes_actual = Mid(Format(Date, "DD/MM/YYYY"), 5, 1)
Cal.Day = 1
VTotal = 0
For i = 1 To 31
If mes = mes_actual Then
VTotal = VTotal + 1
dia = UCase(Format(Cal.Day, "DDDD"))
If dia = "SÁBADO" Or dia = "DOMINGO" Then
VTotal = VTotal - 1
MsgBox dia & "...." & Cal.Day
End If
mes = CStr(Cal.Month)
Cal.NextDay
End If
Next i
MsgBox "Dias habiles del mes: " & VTotal
por fa tirenme un cable ya que me tiene bastante frustrado esta situacion....
de antemano un millon de gracias.
pd: para saber la cantidad de dias entre las dos fechas lo hago asi:
Código:
entrega = fechaentrega.Value 'DTPicker
retiro = fecharetiro.Value 'DTPicker
total = DateDiff("d", entrega, retiro)
pd: lo que se me ocurre es un bucle que recorra desde la fecha inicial hasta la fecha final sumando y descontando los dias habiles y feriados, pero no se como hacerlo
para saber que dia es hoy ej: "SABADO", uso esto:
dia = UCase(Format(entrega, "DDDD")), despues se podria hacer algun IF ELSE para descontarlos..
salu2