• Lenguaje

    Java

  • Descripción

    Pide el año, mes y día de nacimiento y calcula la edad con meses y días cumplidos

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
import java.util.Calendar;
import java.util.Scanner;

public class Edad {

    public static void main(String[] args) {
        int anno, mes, dia, annos, meses, dias, tm_year, tm_mon, tm_mday;
        int[] dias_del_mes = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        Calendar hoy = Calendar.getInstance();
        tm_year = hoy.get(Calendar.YEAR);
        tm_mon  = hoy.get(Calendar.MONTH) + 1;
        tm_mday = hoy.get(Calendar.DAY_OF_MONTH);
        Scanner in = new Scanner(System.in);
        System.out.printf ("Fecha actual: %04d/%02d/%02d\n\n", tm_year, tm_mon, tm_mday);
        do {
            System.out.print("Ingrese el a\244o de nacimiento: ");
            anno = in.nextInt();
            if (anno < 1900 || anno > tm_year)
                System.out.println("A\244o incorrecto.");
        } while (anno < 1900 || anno > tm_year);
        do {
            System.out.print("Ingrese el mes de nacimiento: ");
            mes = in.nextInt();
            if (mes < 1 || mes > 12)
                System.out.println("Mes incorrecto.");
        } while (mes < 1 || mes > 12);
        do {
            System.out.print("Ingrese el d\241a de nacimiento: ");
            dia = in.nextInt();
            if (dia < 1 || dia > dias_del_mes[mes])
                System.out.println("D\241a incorrecto.");
        } while (dia < 1 || dia > dias_del_mes[mes]);
        annos = tm_year - anno;
        meses = tm_mon  - mes;
        dias  = tm_mday - dia;
        if (dias < 0) {
            dias += dias_del_mes[tm_mon];
            meses--;
        }
        if (meses < 0) {
            meses += 12;
            annos--;
        }
        System.out.println();
        System.out.println("A\244os : " + annos);
        System.out.println("Meses: "    + meses);
        System.out.println("D\241as : " + dias);
        System.out.println();
    }

}