|
Página 2 de 2
|
Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
Autor |
Mensaje |
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
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.
=================== No podemos regresar
|
#11 Domingo, 08 Noviembre 2015, 06:12 |
|
|
kike1965
Usuario
Registrado: Noviembre 2015
Mensajes: 12
Edad: 58 Ubicación: Región de Atacama
|
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
|
#12 Domingo, 08 Noviembre 2015, 15:10 |
|
|
kike1965
Usuario
Registrado: Noviembre 2015
Mensajes: 12
Edad: 58 Ubicación: Región de Atacama
|
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.
|
#13 Domingo, 08 Noviembre 2015, 16:02 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
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.
=================== No podemos regresar
|
#14 Domingo, 08 Noviembre 2015, 16:38 |
|
|
kike1965
Usuario
Registrado: Noviembre 2015
Mensajes: 12
Edad: 58 Ubicación: Región de Atacama
|
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
|
#15 Domingo, 08 Noviembre 2015, 17:50 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
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.
=================== No podemos regresar
|
#16 Domingo, 08 Noviembre 2015, 18:22 |
|
|
kike1965
Usuario
Registrado: Noviembre 2015
Mensajes: 12
Edad: 58 Ubicación: Región de Atacama
|
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
|
#17 Domingo, 08 Noviembre 2015, 22:45 |
|
|
kike1965
Usuario
Registrado: Noviembre 2015
Mensajes: 12
Edad: 58 Ubicación: Región de Atacama
|
Re: Cómo Poder Hacer Cálculo Que Indique Años, Meses Y Días Entre Dos Fechas
|
#18 Lunes, 09 Noviembre 2015, 13:34 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 2 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|