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:
el otro: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
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