• Lenguaje

    Java usando Swing

  • Descripción

    Pide la fecha actual, la fecha de nacimiento y calcula la edad.

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
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CalculoDeLaEdad extends JFrame implements ActionListener {

    private static final long serialVersionUID = 1L;
    private JTextField field_anno_actual, field_anno_de_nacimiento, field_dia_actual, field_dia_de_nacimiento, field_mes_actual, field_mes_de_nacimiento;
    private JLabel label_edad;
    private JButton button;

    public Algoritmo() {
        field_anno_actual = new JTextField(4);
        field_anno_de_nacimiento = new JTextField(4);
        field_dia_actual = new JTextField(4);
        field_dia_de_nacimiento = new JTextField(4);
        field_mes_actual = new JTextField(4);
        field_mes_de_nacimiento = new JTextField(4);
        label_edad = new JLabel("", JLabel.RIGHT);
        button = new JButton("Procesar");
        Container pane = getContentPane();
        pane.setLayout(new BorderLayout());
        JPanel panel, subpanel;
        panel = new JPanel(new BorderLayout());
        subpanel = new JPanel(new GridLayout(6, 1));
        subpanel.add(new JLabel("Ingresa el valor de anno actual:"));
        subpanel.add(new JLabel("Ingresa el valor de anno de nacimiento:"));
        subpanel.add(new JLabel("Ingresa el valor de dia actual:"));
        subpanel.add(new JLabel("Ingresa el valor de dia de nacimiento:"));
        subpanel.add(new JLabel("Ingresa el valor de mes actual:"));
        subpanel.add(new JLabel("Ingresa el valor de mes de nacimiento:"));
        panel.add(subpanel, BorderLayout.WEST);
        subpanel = new JPanel(new GridLayout(6, 1));
        subpanel.add(field_anno_actual);
        subpanel.add(field_anno_de_nacimiento);
        subpanel.add(field_dia_actual);
        subpanel.add(field_dia_de_nacimiento);
        subpanel.add(field_mes_actual);
        subpanel.add(field_mes_de_nacimiento);
        panel.add(subpanel);
        pane.add(panel, BorderLayout.NORTH);
        panel = new JPanel(new FlowLayout());
        panel.add(button);
        pane.add(panel);
        panel = new JPanel(new BorderLayout());
        subpanel = new JPanel(new GridLayout(1, 1));
        subpanel.add(new JLabel("Valor de edad:"));
        panel.add(subpanel, BorderLayout.WEST);
        subpanel = new JPanel(new GridLayout(1, 1));
        subpanel.add(label_edad);
        panel.add(subpanel);
        pane.add(panel, BorderLayout.SOUTH);
        button.addActionListener(this);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setLocationRelativeTo(null);
    }

    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        int anno_actual, anno_de_nacimiento, dia_actual, dia_de_nacimiento, edad;
        int mes_actual, mes_de_nacimiento;
        try {
            anno_actual = Integer.parseInt(field_anno_actual.getText());
            anno_de_nacimiento = Integer.parseInt(field_anno_de_nacimiento.getText());
            dia_actual = Integer.parseInt(field_dia_actual.getText());
            dia_de_nacimiento = Integer.parseInt(field_dia_de_nacimiento.getText());
            mes_actual = Integer.parseInt(field_mes_actual.getText());
            mes_de_nacimiento = Integer.parseInt(field_mes_de_nacimiento.getText());
        } catch (NumberFormatException numberFormatException) {
            return;
        }
        edad=anno_actual-anno_de_nacimiento;
        if(mes_de_nacimiento>mes_actual||(mes_de_nacimiento==mes_actual&&dia_de_nacimiento>dia_actual))
            edad=edad-1;
        label_edad.setText(String.valueOf(edad));
        pack();
    }

    public static void main(String[] args) {
        new Algoritmo().setVisible(true);
    }

}