Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como calcular dias hábiles en visual basic 6 y mysql.

Estas en el tema de Como calcular dias hábiles en visual basic 6 y mysql. en el foro de Visual Basic clásico en Foros del Web. Buenas tardes estimados amigos foristas : Estoy desarrollando una aplicación donde pueda llevar el control de días hábiles para la ejecución de un trabajo.... Hice ...
  #1 (permalink)  
Antiguo 02/12/2009, 14:36
 
Fecha de Ingreso: septiembre-2009
Ubicación: Venezuela
Mensajes: 92
Antigüedad: 14 años, 8 meses
Puntos: 1
Exclamación Como calcular dias hábiles en visual basic 6 y mysql.

Buenas tardes estimados amigos foristas :

Estoy desarrollando una aplicación donde pueda llevar el control de días hábiles para la ejecución de un trabajo.... Hice mi tabla en MYSQL llamada "feriados", aqui se encuentra el dia y el mes únicamente.

Ahora bien... encontré un código en el foro y me pareció excelente pero solo me descuenta los sábados y domingos.... no se como hacer para que me tome el feriado y lo reste también....

Estoy trabajando en visual basic 6 y mysql. Los controles para llevar el conteo de los dias lo hago a través de un dtpicker en format dd/mm ya que en mysql lo almacené como varchar para que no me tomara el año...

Les anexo el código.

Private Sub Command1_Click()

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim dif, i As Integer

fecha_inicial = Format(DTPicker1, "dd/mm")
fecha_final = Format(DTPicker2, "dd/mm")


Set cnn = New ADODB.Connection
cnn.ConnectionString = "DRIVER={mysql odbc 3.51 driver};" _
& "SERVER=192.168.112.23;" _
& "Database=devel;" _
& "UID=Efkar56Freg3;" _
& "password=NamfloEFBAM76;" _
& "port=3306;option3 "

cnn.Open

'On Error Resume Next

Set rst = New ADODB.Recordset

With rst
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open "SELECT fecha FROM feriados WHERE MONTH (fecha) = " & Month(fecha_inicial) + i & " AND DAY(fecha) = " & Day(fecha_inicial) + i, cnn
End With

dif = CDate(Format(fecha_final, "dd/mm")) - CDate(Format(fecha_inicial, "dd/mm"))

For i = 1 To dif

If Weekday(CDate(fecha_inicial) + i, vbMonday) = 6 Or Weekday(CDate(fecha_inicial) + i, vbMonday) = 7 Then

dif = dif - 1

Else

If rst.BOF = False And rst.EOF = False Then

dif = dif - 1

End If

End If

Next i

MsgBox "Dias habiles = " & dif, vbInformation, "Resultado"

End Sub



Cuando le digo que me calcule los dias hábiles del mes de febrero del año 2010 me dice que son 20 cuando en realidad son 18 (por los dias de semana santa). Yo le hago el select para que me los ubique y los descuente pero de igual forma no los resta...

AUXILIO POR FAVOR !!!!

saludos !!

Carlos.
  #2 (permalink)  
Antiguo 03/12/2009, 07:26
 
Fecha de Ingreso: enero-2008
Mensajes: 10
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Como calcular dias hábiles en visual basic 6 y mysql.

mirá.. desde mi punto de vista vos completaste un primer paso que es identificar días hábiles.

sobre ese flujo de información, vas a tener que restar los feriados. esa info me pa que la vas a tener que cargar vos y dejarla en algún lugar del programa o la base, preferentemente.

un vector del tipo...

24/3 > Día de la memoria.
1/5 > Día del trabajador.
etc.. etc.

que ese vector lo pase a días de la semana, y si caen en días hábiles que los reste directamente.

también podés hacer un formulario donde los feriados los especifique el usuario

slds,

David.
  #3 (permalink)  
Antiguo 03/12/2009, 13:32
 
Fecha de Ingreso: septiembre-2009
Ubicación: Venezuela
Mensajes: 92
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Como calcular dias hábiles en visual basic 6 y mysql.

Oye muchisimas gracias por tu respuesta.. ahora fijate.... yo hice una tabla que se llama "feriados"... ahi coloqué cada uno de los feriados en el formato que maneja mysql....

Lo que no se como hacer es lo siguiente....

En diciembre restando sabados y domingos nos quedarian 23 días.... restandole el 25 de dicimebre que no se trabaja... serían 23...

Como le digo al sistema que busque en la tabla feriados si hay alguna fecha que coincida con los dias hábiles y al final lo reste para que me den los 22 dias hábiles....

Ahi es donde tengo la tranca jejeje....

Muchisimas gracias !!!!
  #4 (permalink)  
Antiguo 16/12/2009, 08:26
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Como calcular dias hábiles en visual basic 6 y mysql.

Mira, no encontre ninguna funcion que haga eso.
Te paso esto que arme, solo faltaria ver el tema de los feriados que habria que contemplarlo en el while

Espero te sirva

Código:
Dim Ini As Date, Fin As Date
    Ini = "10/12/2009"
    Fin = "16/12/2009"
    Cant = 0
    While Ini <> Fin
        If (Weekday(Ini) <> 1) And (Weekday(Ini) <> 7) Then
        Cant = Cant + 1
        End If
        Ini = DateAdd("D", 1, Ini)
    Wend
    MsgBox Cant

End Sub
  #5 (permalink)  
Antiguo 18/12/2009, 07:02
 
Fecha de Ingreso: septiembre-2009
Ubicación: Venezuela
Mensajes: 92
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Como calcular dias hábiles en visual basic 6 y mysql.

excelente pana 99... un millón de grcias por tus consejos.. disculpa la demora pero estuve de viaje... cualquier cosa te vuelvo a molestar jejeje
  #6 (permalink)  
Antiguo 18/12/2009, 07:04
 
Fecha de Ingreso: septiembre-2009
Ubicación: Venezuela
Mensajes: 92
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Como calcular dias hábiles en visual basic 6 y mysql.

excelente pana 99... un millón de grcias por tus consejos.. disculpa la demora pero estuve de viaje... cualquier cosa te vuelvo a molestar jejeje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:05.