Tema: dias habiles
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2006, 13:18
Avatar de cadrogui
cadrogui
 
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 21 años, 10 meses
Puntos: 5
dias habiles

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
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Última edición por cadrogui; 25/04/2006 a las 13:27