Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
Artículo |
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
Bienvenido wikiuy. Ése es el enfoque básico que indiqué en la primera respuesta. Buena cosa que te sientas tan cómodo el primer día con éste maravilloso invento.
Saludos.
|
shordi [ Domingo, 08 Noviembre 2015, 06:12 ]
|
|
Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
Comentarios |
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
Hola Shordi, estuve trabajando con un formulario en donde incluí dos DateBox y un Botón, el código es el siguiente:
Enlace al código
He estado probando y funciona, aunque me falta el manejo de errores en caso de restar negativamente.
Les solicitaría su opinión, ya que al final me puse a arreglar cosas con demasiadas sentencias IF THEN
Gracias amigos.
última edición por kike1965 el Domingo, 08 Noviembre 2015, 17:47; editado 4 veces
|
kike1965 [ Domingo, 08 Noviembre 2015, 15:10 ]
|
|
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
Buenas a todos.
Pues vi el tema buscando aprender a usar este lenguaje y manipular fechas suele ser muy útil como pesado en ciertas ocasiones.
Hace menos de 24 horas que instale gambas y me puse a experimentar, vale, que sin experimentar nada se aprende.
Vi varios comentarios donde usáis varias funciones de manejo de datos fecha, pero yo como cabeza dura y anticuado probé algo mas rudimentario pero que según mis pruebas da buen resultado y aquí os dejo lo que logre.
Public Sub diferencia(f1 As Date, f2 As Date)
'f1 y f2 las fechas que pasamos a trabajar
Dim d As Integer
'variable d donde guardamos la cantidad de dias
d = DateDiff(f1, f2, gb.day) - Int(DateDiff(f1,f2,gb.year) / 4)
'a la cantidad de dias obtenida con DateDiff le resto el resultado entero de la cantidad de años dividido 4, Int(DateDiff(f1,f2,gb.year) / 4)
'con esto ajustamos el dia extra en los años bisiestos
anios.text = Int(d / 365)
'Anios es años(no me deja nombrar con ñ jaja), calculado a partir del entero de dividir los días entre 365
meses.text = Int(Int(((d / 365) - Int(d / 365)) * 365) / 30)
'Los meses los calculo restando el entero de años de dividir los días entre 365.
'Al decimal (menor que 1) restante lo multiplico por 30 y de ese resultado filtro la parte decimal para obtener meses enteros.
dias.text = Int((((((d / 365) - Int(d / 365)) * 365) / 30) - Int((((d / 365) - Int(d / 365)) * 365) / 30)) * 30)
'Del mismo modo que para calcular los meses pero esta vez restando los meses enteros y nuevamente al resto menor que 1 lo multiplico por 30 para obtener dias y de ese resultado uso el entero tbn.
End
Espero se entienda saludos
Hola Wikiuy, gracias por responder. Estuve probando tu código, pero el día no me da correcto aún, por ejemplo si calculas desde el 01/01/1980 a 08/11/2015 el resultado es 35 años, 10 meses y 12 días, pero debiera ser 35 años, 10 meses y 7 días.
Bueno es cosa de revisar solamente, pero agradezco tu interés.
Cordiales saludos.
|
kike1965 [ Domingo, 08 Noviembre 2015, 16:02 ]
|
|
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
Bien está, si bien funciona... pero me da un error de compilación en esta línea:ç
If M <1> DiaFi Then
Supongo que es un error de transcripción.
No le he querido tocar dime cuál era la línea original y veremos si funciona.
Saludos.
|
shordi [ Domingo, 08 Noviembre 2015, 16:38 ]
|
|
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
Bien está, si bien funciona... pero me da un error de compilación en esta línea:ç
If M <1> DiaFi Then
Supongo que es un error de transcripción.
No le he querido tocar dime cuál era la línea original y veremos si funciona.
Saludos.
Extraño, lo intenté hacer en dos oportunidades pero cuando le aplico las etiquetas code, me altera el código, así que edité el post y puse un enlace a un pastebin, no obstante aquí lo vuelvo a insertar:
Enlace
Saludos Shordi y ojalá puedas verlo ahora.
última edición por kike1965 el Domingo, 08 Noviembre 2015, 17:51; editado 2 veces
|
kike1965 [ Domingo, 08 Noviembre 2015, 17:50 ]
|
|
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
Ok. Ahora sí. En el futuro, cuando hagas un proyecto así, de ejemplo, basta con seleccionar en el menú proyecto->crear->Archivo Fuente y te creará un fichero tar.gz con el proyecto. Lo subes anexo al post y listo.
Lo he probado y parece funcionar. Es lo que se llamaba en mis tiempos "código humano", es decir un código que reproduce paso a paso lo que uno haría sobre el papel caso de tenerlo que hacer a mano. Queda largo y algo enrevesado pero como dije antes: bien está lo que bien funciona.
Saludos.
|
shordi [ Domingo, 08 Noviembre 2015, 18:22 ]
|
|
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
Gracias Shordi, efectivamente el código es bastante humano y un poco desordenado
Vale, ahora subo las fuentes.
Cordiales saludos Shordi y muchas gracias.
última edición por jguardon el Lunes, 09 Noviembre 2015, 18:42; editado 1 vez
Editado por jguardon, Lunes, 09 Noviembre 2015, 18:42: Adjunto obsoleto eliminado
|
kike1965 [ Domingo, 08 Noviembre 2015, 22:45 ]
|
|
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
|
kike1965 [ Lunes, 09 Noviembre 2015, 13:34 ]
|
|
|
|
Página 2 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
|
|