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

Gestion de pagos quincenales

Estas en el tema de Gestion de pagos quincenales en el foro de Visual Basic clásico en Foros del Web. Hola Tengo una dudad espero que me puedan ayudar Resulta que estoy haciendo un programa para la gestion de pagos quincenales pero no se como ...
  #1 (permalink)  
Antiguo 02/10/2010, 20:33
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 9 meses
Puntos: 4
Gestion de pagos quincenales

Hola Tengo una dudad espero que me puedan ayudar

Resulta que estoy haciendo un programa para la gestion de pagos quincenales pero no se como calcular las quincenas, es decir como averiguar en que dias del mes puedo cobrar una quincena a una persona que me debe dinero.
  #2 (permalink)  
Antiguo 03/10/2010, 01:49
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Gestion de pagos quincenales

Hola, no se si conoces la funcion DateAdd que te permite sumas valores a una fecha para conseguir otra, por ejemplo:

DateAdd("d", 15, Date) ' Aqui sumamos 15 dias a la fecha e hoy

Si es una posible solución a tu problema y necesitas mas datos, comenta.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 03/10/2010, 15:08
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Gestion de pagos quincenales

Gracias erbuson

Mira
El detalle es que no todos los meses son de 30 dias y solo en años bisiestos febrero tiene 29 dias, al sumar quince dias las fechas se corren por ejemplo partiendo desde los primeros dias de feb
q1 - 15/feb/yyyy
q2 - 2/marzo/yyyy
q3 - 17/marzo/yyyy
q4 - 1/abril/yyyy

estaba pensando en hacer una funcion que me diera las proximas n fechas donde son quincenas, como es un sistema de cobro por quincenas, practicamente los dias 15 y 30, en el caso de febrero la segunda semana seria el 28 ó 29 en años bisiestos.

pero como saber cuantos dias tiene cada mes.
que año es bisiesto, para calcular la segunda quincena de febrero.

estoy pensando en una funcion digamos quincenas.
y parametros la fecha actual, utilizo la fecha del sistema( Date ), el numero de quincenas que solicito de 2 a 10 quincenas(como plaso minimo y maximo) y que me regrese las fechas de las siguientes n quincenas que le solicite, para esto es el segundo parametro y el primero para averiguar desde donde empesar a buscar.

ojala me puedan ayudar con algunas funciones de fechas para conocer el mes en el que estamos, el dia en el que estamos, el año, cuantos dias tiene cada mes y cuando es año bisiesto.

creo que eso me serbiria bastante.
  #4 (permalink)  
Antiguo 03/10/2010, 15:32
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Gestion de pagos quincenales

Hola, en primer lugar puedes utilizar esta función que te devuelve si un año es bisiesto ya que el único problema leyendo tu mensaje es en estos años puesto que al parecer para los demás meses siempre serán 15 y 30

Código vb:
Ver original
  1. Function EsBisiesto(ByVal Anno As Integer) As Boolean
  2.   If Day(DateAdd("d", -1, DateSerial(Anno, 3, 1))) = 29 Then EsBisiesto = True
  3. End Function
La primera quince SIEMPRE será día 15 y la segunda día 30 si no es Febrero. En este último caso será 28 o 29 dependiendo de si Bisiesto = True

Si he entendido mal o quedan dudas comenta.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #5 (permalink)  
Antiguo 03/10/2010, 15:49
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Gestion de pagos quincenales

Si parese que por ahi va la cosa, voi a intentarlo mas tarde y luego comento por aqui como voi con eso pero por ahora tengo que salir.

gracias
  #6 (permalink)  
Antiguo 04/10/2010, 00:00
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Gestion de pagos quincenales

Ya encontre lo que buscaba un manual muy completo sobre las funciones que tiene visual basic 6 para manejar fechas el detalle es que esta en ingles.

Por ejemplo para saber en que mes estamos
intMonth = Month(Now) ' intMonth = 8

aqui les dejo el enlace http://www.vb6.us/tutorials/date-tim...s-visual-basic para futuras referencias.
  #7 (permalink)  
Antiguo 04/10/2010, 08:34
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Gestion de pagos quincenales

Se agradece el aporte, aunque para los menos expertos en inglés (como es mi caso) aquí el enlace con Recursos Visual Basic en la lengua de Cervantes.

Funciones con Fechas

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #8 (permalink)  
Antiguo 14/10/2010, 01:01
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 9 meses
Puntos: 4
Sonrisa Respuesta: Gestion de pagos quincenales

Hola porfin pude crear una funcion que me diera las fechas en que son quincena, es decir los dias 15 y 30 de cada mes, 28 o 29 en febrero dependiendo, partiendo de una fecha calcula el numero de fechas solicitadas, y puede ir de 1 a mas de 100, pero creo que mas de 50 ya son muchas ademas las calcula con facilidad y sin demora.

aqui les dejo la funcion por si alguien mas la ocupa

Código:
Function CalcQuincenas(ByVal Qnas As Integer, ByVal Fecha As Date) As String
    '=======================================================
    'Calculo de las fechas que caen en quincena, es decir los dias 15 y 30 de cada mes con
    'dos parametros, Qnas como entero es el que nos dice cuantas fechas tenemos que buscar
    'apartir de la fecha indicada en el segundo parametro, en este caso es Fecha como Date.
    '========================================================
        
    Dim dia, mes, año As Integer
    Dim x As Integer
    Dim Fechas As String
    Dim UltDia As Integer
    
    dia = Day(Fecha): mes = Month(Fecha): año = Year(Fecha)
    
    For x = 1 To Qnas
        If dia <= 15 Then
            Fechas = Fechas & DateSerial(año, mes, 15) & " "
            dia = 16
        Else
            
            UltDia = Day(DateSerial(año, mes + 1, 0))

                If UltDia = 31 Then
                    Fechas = Fechas & DateSerial(año, mes + 1, -1) & " "
                Else
                    Fechas = Fechas & DateSerial(año, mes + 1, 0) & " "
                End If
                
            mes = mes + 1
            dia = 15
        End If
        
    Next
    CalcQuincenas = Fechas
    
End Function
  #9 (permalink)  
Antiguo 14/10/2010, 08:08
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 15 años, 1 mes
Puntos: 47
Respuesta: Gestion de pagos quincenales

Hola!!
Para estructurar mas la cosa, aqui está una funcion que calcula si es fin de semana... por si acaso los dias 15 ó 30 son sabado o domingo:
Código vb:
Ver original
  1. 'Para usarlo
  2. NombreDiaSemana = fDiaSemana(Date)
  3.  
  4. If NombreDiaSemana = "Sábado" Or NombreDiaSemana = "Domingo" Then 'Es un fin de semana
  5. end if

Esta es la funcion:
Código vb:
Ver original
  1. Public Function fDiaSemana(pFecha As String)
  2.     Select Case (Weekday(pFecha))
  3.         Case 1: pFecha = "Domingo"
  4.         Case 2: pFecha = "Lunes"
  5.         Case 3: pFecha = "Martes"
  6.         Case 4: pFecha = "Miércoles"
  7.         Case 5: pFecha = "Jueves"
  8.         Case 6: pFecha = "Viernes"
  9.         Case 7: pFecha = "Sábado"
  10.     End Select
  11.     fDiaSemana = pFecha
  12. End Function
  #10 (permalink)  
Antiguo 18/10/2010, 01:52
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Gestion de pagos quincenales

Ho gracias lokoman pero yo tambien lo adapte de una forma diferente para que me muestre el nombre del dia, con el siguiente procedimiento se saca cada una de las fechas de la cadena entera de debuelve la funcion CalcQuincenas y primero calcula el dia de la semana y despues en base a eso el nombre del dia.

Código:
Fechas = CalcQuincenas(Quincenas, Me.MonthView1.Value)

    'El for agrega una nueva linea de una forma muy peculiar
    For x = 1 To Len(Fechas)
        Resumen = Resumen & vbCrLf & " No. " & No & vbTab & "  " & Trim(Mid(Fechas, x, 10)) & vbTab & WeekdayName(Weekday(Trim(Mid(Fechas, x, 10))))
        x = x + 10
        No = No + 1
    Next
    'La cadena formateada va un Textbox
    Me.txtResumen = Resumen
Ahora mismo el resultado que me arroja de las proximas 10 quincenas es el siguiente:

Código:
 No. 1      30/10/2010    Sábado
 No. 2      15/11/2010    Lunes
 No. 3      30/11/2010    Martes
 No. 4      15/12/2010    Miércoles
 No. 5      30/12/2010    Jueves
 No. 6      15/01/2011    Sábado
 No. 7      30/01/2011    Domingo
 No. 8      15/02/2011    Martes
 No. 9      28/02/2011    Lunes
 No. 10     15/03/2011    Martes
Asi se ve mejor, de momento no creo que sea importante que solo sean dias habiles, pero de no ser asi ya veremos como adaptarlo, pues ahi les dejo a los que anden buscando algo asi.
Saludos.
  #11 (permalink)  
Antiguo 02/08/2013, 21:58
Avatar de sauryjorge  
Fecha de Ingreso: agosto-2013
Mensajes: 1
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Gestion de pagos quincenales

Me gusto mucho este tema y función, hice un arreglo menor para usarla dentro de un FOR para tener una lista de quincenas secuenciales.

Lo interesante de la función, es que trabaja bien tanto en VB6.0 como en VB.NET sin problemas.

Código vb:
Ver original
  1. Function CalcQuincenas(ByVal Qnas As Integer, ByVal Fecha As Date) As String
  2.         '=======================================================
  3.        'Calculo de las fechas que caen en quincena, es decir los dias 15 y 30 de cada mes con
  4.        'dos parametros, Qnas como entero es el que nos dice cuantas fechas tenemos que buscar
  5.        'apartir de la fecha indicada en el segundo parametro, en este caso es Fecha como Date.
  6.        '========================================================
  7.  
  8.         Dim dia, mes, año As Integer
  9.         Dim x As Integer
  10.         Dim Fechas As String = ""
  11.         Dim UltDia As Integer
  12.  
  13.  
  14.         dia = DateAndTime.Day(Fecha) : mes = Month(Fecha) : año = Year(Fecha)
  15.  
  16.         For x = 1 To Qnas
  17.             Fechas = ""
  18.             If dia <= 15 Then
  19.                 Fechas = DateSerial(año, mes, 15) & " "
  20.                 dia = 16
  21.             Else
  22.  
  23.                 UltDia = DateAndTime.Day(DateSerial(año, mes + 1, 0))
  24.  
  25.                 If UltDia = 31 Then
  26.                     Fechas = DateSerial(año, mes + 1, -1) & " "
  27.                 Else
  28.                     Fechas = DateSerial(año, mes + 1, 0) & " "
  29.                 End If
  30.  
  31.                 mes = mes + 1
  32.                 dia = 15
  33.             End If
  34.         Next
  35.         CalcQuincenas = Fechas
  36.     End Function

Última edición por sauryjorge; 02/08/2013 a las 22:03 Razón: Agregar que funciona bien en 6.0
  #12 (permalink)  
Antiguo 10/09/2013, 10:38
 
Fecha de Ingreso: octubre-2011
Ubicación: Maracaibo, Venezuela
Mensajes: 11
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Gestion de pagos quincenales

Saludos..

estoy tratando de usar la funcion pero se me presento un detalle..

no puede haber un sabado, domingo o feriado..



alkguna ayuda?
  #13 (permalink)  
Antiguo 28/10/2014, 13:29
 
Fecha de Ingreso: octubre-2014
Ubicación: España
Mensajes: 2
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Gestion de pagos quincenales

Hola veo que ustedes son unas maquinas quisiera ver si me pueden ayudar ya que estoy registrado en este foro y hasta ahora no recibo ninguna respuesta de ayuda.
Y me e facultado en escribirles a Uds.
  #14 (permalink)  
Antiguo 28/10/2014, 13:30
 
Fecha de Ingreso: octubre-2014
Ubicación: España
Mensajes: 2
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Gestion de pagos quincenales

Hola estoy tratando de buscar una solución y lo que de momento e intentado hacer es un bucle el cual me a dado resultado pero me devuelve el valor en días
24/10/2014
25/10/2014
26/10/2014
27/10/2014
28/10/2014

y yo lo que busco es que me devuelva en meses.
24/10/2014
24/11/2014
24/12/2014
24/01/2015
24/02/2015

Estoy tomando el valor de Text1(14).Text que es donde ingreso la cantidad algo así ingreso en el text por ejemplo 5 y me devuelva 5 meses
y LblFecha que es donde muestro la fecha del sistema.

Private Sub Command1_Click()

Dim i As Date

For i = 1 To Text1(14).Text

MSFMovimientos.TextMatrix(i, 19) = DateValue(lblFecha + i)

Next i

End Sub

gracias de antemano.

Etiquetas: fechas, pagos, quincenas, vb6
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:17.