Java - Calculo de edad

 
Vista:

Calculo de edad

Publicado por Mr. Question (2 intervenciones) el 04/07/2005 21:36:13
Saludos, una consultilla por favor tengo los datos de una persona, su fecha de nacimiento en formato "aaaammdd" (año, mes, dia) Ejemplo: 18000930 y tengo otrodato del a persona su Fecha de deceso en el mismo formato Ej: 18600501, necesito calcular su edad pero considerando los meses dias años bisiestos y todo eso que me dejo con la gran duda =( por fa cualkier idea sea bienbenida =).
Mr. Question
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

RE:Calculo de edad

Publicado por J Hilario (54 intervenciones) el 05/07/2005 00:42:06
Pues mira....como que muy bueno con eso de las fechas no soy, pero se me ocurre que formes un objeto de calendario con la fecha que tienes de entrada, uno con la fecha actual (sin parámteros) y partir de ahi realizar tú el cálculo de los años. Espero el siguiente código sea de utilidad y no presente algún error de lógica.

String fecha = "20040604"; // 5 de junio 2004
// Formar el objeto con los parámetros (year, month, dayOfMonth)
int y1 = Integer.parseInt(fecha.substring(0, 4));
int m1 = Integer.parseInt(fecha.substring(4, 6));
int d1 = Integer.parseInt(fecha.substring(6, 8));
GregorianCalendar fechaAnterior = new GregorianCalendar(y1, m1, d1);
// Objeto con la fecha actual
GregorianCalendar fechaActual = new GregorianCalendar();
int y2 = fechaActual.get(GregorianCalendar.YEAR);
int m2 = fechaActual.get(GregorianCalendar.MONTH);
int d2 = fechaActual.get(GregorianCalendar.DAY_OF_MONTH);
int diffYears = (y2 - y1 - 1) + (m2 == m1 ? (d2 >= d1 ? 1 : 0) : m2 >= m1 ? 1 : 0);
System.out.println(diffYears + " años");

PD. Sé que hay mejores códigos, fáciles y seguros que este pero es lo que se me ocurrió, 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

RE:Calculo de edad

Publicado por Mr. Question (2 intervenciones) el 05/07/2005 04:18:16
Gracias Hilario!, me sirvio, una consulta en q consiste esa formula? o sea como trabaja me podrias explicar por favor? =), gracias nuevamente
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

RE:Calculo de edad

Publicado por J Hilario (54 intervenciones) el 05/07/2005 16:43:22
Pues mira...la primera operacion es la resta de los años
y2 - y1 - 1
si tenemos por ejemplo 31-diciembre-2000 y 1-enero-2001 te darás cuenta que hay un año de diferencia, pero solo en el valor de los años, no en toda la fecha. Entonces se resta uno y la siguiente operación verifica los meses y los días para ver si ha pasado un año (con lo cual se sumará uno al resultado anterior)
la siguiente operación:
(m2 == m1 ? (d2 >= d1 ? 1 : 0) : m2 >= m1 ? 1 : 0)
Si los meses son iguales, entonces hay que comprobar si el día d2 es mayor al día d1, en ese casi si ha transcurrido un año. O bien, basta con probar que el mes2 es mayo al mes 1. Incluso creo que puedes cambiar el sigo >= por solo >. 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

RE:Calculo de edad

Publicado por Oscar (1 intervención) el 02/11/2008 18:32:28
hola| porfavor como mando el parametro Timestamp porfavor es urgente
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

RE:Calculo de edad

Publicado por Ramon Velazquez Rios (1 intervención) el 14/03/2008 02:13:56
Calcular la edad con Java, recive como parametro Timestamp con tu fecha de nacimiento y calcula los años, meses y dias ke has vivido

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
public class Edad {
 
    private int year;
    private int month;
    private int day;
 
    /** Creates a new instance of Edad */
    public Edad() {
    }
 
    public int getYear() {
        return year;
    }
 
    public void setYear(int year) {
        this.year = year;
    }
 
    public int getMonth() {
        return month;
    }
 
    public void setMonth(int month) {
        this.month = month;
    }
 
    public int getDay() {
        return day;
    }
 
    public void setDay(int day) {
        this.day = day;
    }
 
 
    public Edad calcularEdad (Timestamp birth) {
 
        Date d = new Date();
 
        SimpleDateFormat sdfDia = new SimpleDateFormat("dd");
        SimpleDateFormat sdfMes = new SimpleDateFormat("MM");
        SimpleDateFormat sdfAño = new SimpleDateFormat("yyyy");
 
        int a = Integer.parseInt(sdfAño.format(d)) - Integer.parseInt(sdfAño.format(birth));
        int b = Integer.parseInt(sdfMes.format(d)) - Integer.parseInt(sdfMes.format(birth));
        int c = Integer.parseInt(sdfDia.format(d)) - Integer.parseInt(sdfDia.format(birth));
 
        if (b < 0) {
            a = a -1;
            b = 12 + b;
        }
 
        if (c < 0) {
            b = b - 1;
            switch (Integer.parseInt(sdfMes.format(d))) {
                case 2:
                    int año = Integer.parseInt(sdfAño.format(d));
                    if ((año % 4 == 0) && ((año % 100 != 0) || (año % 400 == 0)))
                        c = 29 + c;
                    else
                        c = 28 + c;
                    break;
                case 4:
                case 6:
                case 9:
                case 10:
                case 11: c = 30 + c;
                    break;
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 12: c = 31 + c;
                    break;
            }
        }
 
        Edad edad = new Edad();
        edad.setDay(c);
        edad.setMonth(b);
        edad.setYear(a);
 
        return edad;
    }
 
}
 
// Monchis Xtreme.... >:3333
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

RE:Calculo de edad

Publicado por Roque (1 intervención) el 19/08/2008 05:06:44
De donde sale la clase SimpleDateFormath
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

RE:Calculo de edad

Publicado por lsibeth (1 intervención) el 09/06/2009 18:26:37
necesito por favor un programa en java que calcule los dias vividos
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

RE:Calculo de edad

Publicado por Laura Zapata Aspiazu (1 intervención) el 02/09/2008 00:37:01
Gracias por el código, lo voy a adjuntar y a probar en mi proyecto.
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

RE:Calculo de edad

Publicado por robert (1 intervención) el 21/10/2009 01:06:53
hola

este es el edad.java y necesito saber como se hace el metodo main

ahi que debo poner

me podrian ayudar
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

RE:Calculo de edad

Publicado por Henry Wong (1 intervención) el 28/12/2010 19:15:59
Una forma un poco mas sencilla seria usando el siguiente metodo

http://hwongu.blogspot.com/2008/09/calculo-de-la-edad-desde-java.html
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

Calculo de edad

Publicado por danilo (2 intervenciones) el 11/03/2017 03:39:10
te dejo el link del codigo para java y pseInt
https://mega.nz/#!fQVHkbJL
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
Imágen de perfil de xve
Val: 686
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Calculo de edad

Publicado por xve (345 intervenciones) el 11/03/2017 11:42:25
Hola Danilo, falta la clave en el enlace!!!
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