Visual Basic - Calcular la edad en años, meses y dias

Life is soft - evento anual de software empresarial
   
Vista:
Imágen de perfil de CHRISTIAN

Calcular la edad en años, meses y dias

Publicado por CHRISTIAN christiangp_lab_clinico@hotmail.com (1 intervención) el 18/07/2015 04:55:35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub TextBox10_Change()
    Application.ScreenUpdating = False
    On Error Resume Next
    Dim cam As Integer
    cam = Len(TextBox10.Text)
    Select Case cam
    Case 2
    Me.TextBox10.Text = Me.TextBox10 & "/"
    Case 5
    Me.TextBox10.Text = Me.TextBox10 & "/"
    End Select
 
    Dim fecactual As Date
    Dim fecnac As Date
    Dim edadactual As String
    fecnac = CDate(TextBox10.Value)
    edadactual = DateDiff("yyyy", fecnac, Now)
    TextBox11.Text = edadactual
    fecnac = CDate(TextBox10.Value)
    If TextBox11.Text <> Empty Then
    TextBox11.Enabled = False
    Else
    TextBox11.Enabled = True
    End If
 
End Sub
 
TextBox10 : fecha de nacimiento
TextBox11: edad

Por favor que podrian corregir en los codigs
que salga por ejm, 2a, 3m, 5d.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Calcular la edad en años, meses y dias

Publicado por Rafael (65 intervenciones) el 23/07/2015 13:00:39
Pues mira hay cosas en tu codigo que no me gustan... otras que mejor ni preguntar...

jajajaja

Te dejo una funcion que calcula la edad con años, meses y dias en VB6

Espero te sirva:
1
2
3
4
5
6
7
8
9
10
11
Public Sub Edad()
    Dim fecActual As Date
    Dim fecNac As Date
    Dim edad_en_anios, edad_en_meses, edad_en_dias As Long
    fecActual = Now
    fecNac = CDate("08/04/1973")
    edad_en_anios = DateDiff("yyyy", fecNac, fecActual)
    edad_en_meses = DateDiff("m", fecNac, fecActual) - (edad_en_anios * 12)
    edad_en_dias = DateDiff("d", CDate(Day(fecNac) & "/" & (Month(fecActual) - IIf(Day(fecNac) >= Day(fecActual), 1, 0)) & "/" & Year(fecActual)), Now)
    MsgBox "Años " & edad_en_anios & vbCrLf & "Meses " & edad_en_meses & vbCrLf & "Dias " & edad_en_dias
End Sub

Y procedo a explicarla...
Primero he puesto una fecha fija que deberas sustituir...

Despues los años como ya habias hecho pero con la diferencia que lo que te regresa es un LONG y redondeado es decir la diferencia seria algo como 42.25..... pero lo deja en 42

Con ello saco la diferencia en meses como 507 ... pero le resto los (42*12) que ya he mostrado es decir 504, me deja solo 3... correcto tambien

Ahora bien el calculo de los dias... saco la diferencia en dias de la fecha actual si el dia es menor a hoy (que lo es) uso de base el mismo mes ejemplo 8/7/2015 y 23/7/2015 son 15 dias correcto tambien ...

No obstante si la fecha fuera mayor ejemplo 24/7/2015 y 23/7/2015 nos daria negativo por eso lo comparo contra el mes anterior...

Nos cuentas como te fue ??

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM

Calcular la edad en años, meses y dias

Publicado por JoaoM (72 intervenciones) el 23/07/2015 21:50:52
Con formula:

En A coloca tu fecha de nacimiento
En B la fecha actual o =HOY()

Para 3 celdas

En D escribe =SIFECHA(A2;B2;"Y")&" años"
En E escribe =SIFECHA(A2;B2;"ym")&" meses y"
En F escribe =SIFECHA(A2;B2;"md")&" días"

Para una sola celda. Lo mismo de antes; fecha de nacimiento en A y fecha actual en B

=SIFECHA(A2;B2;"Y")&" años, "&SIFECHA(A2;B2;"ym")&" meses y "&SIFECHA(A2;B2;"md")&" días"

Usa la flecha de hacia arriba de valoracion que estan abajo del mensage si mi mensage te sirvio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar

Calcular la edad en años, meses y dias

Publicado por Rafael (65 intervenciones) el 24/07/2015 09:26:56
@JoaoM la pregunta es en Visual Basic no Excel...
por que tratas de confundir a los demas ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar