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 (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
sin imagen de perfil
Val: 21
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Calcular la edad en años, meses y dias

Publicado por Rafael (68 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
Val: 58
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Calcular la edad en años, meses y dias

Publicado por JoaoM (79 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
sin imagen de perfil
Val: 21
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Calcular la edad en años, meses y dias

Publicado por Rafael (68 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
0
Comentar

Calcular la edad en años, meses y dias

Publicado por OSCAR (2 intervenciones) el 18/08/2021 19:38:54
esta formula no funciona si estamos utilizando base de datos la formula se borra.
gracias.
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

Calcular la edad en años, meses y dias

Publicado por OSCAR (2 intervenciones) el 18/08/2021 19:44:38
buenas tardes, pues en los dias si me cuesta comprender , gracias.
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

Calcular la edad en años, meses y dias

Publicado por Dave (1 intervención) el 19/08/2021 21:32:04
Private Shared Function calculaEdad(fechaNac As String) As Integer
Dim format As String = "ddd d/MMM yyy HH:mm"
Dim curTime As DateTime = DateTime.Now
Dim birthDate As Date = fechaNac
Dim elapsed As TimeSpan
elapsed = curTime - birthDate
Return Int(elapsed.Days / 365.25)
End Function
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