Olá, estou tentando fazer um validador de data, nele eu tenho um if e como condição: se mes = jan ou mar ou mai ou jul ou ago ou out ou dez e dia >0 <32 {data valida} else {data invalida}, e por ai vai. O problema é que se o dia for maior q 12 da data invalida, e mes pode ser qualquer numero q da data valida. O código ta ai
package valdata;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class ValData implements ActionListener {
JFrame janela = new JFrame("Validar data");
JTextField caixa1 = new JTextField();
JTextField caixa2 = new JTextField();
JTextField caixa3 = new JTextField();
JButton botao = new JButton("VALIDAR DATA");
Font fonte = new Font("Segoe UI", Font.BOLD, 10);
Font fonte2 = new Font("Segoe UI", Font.BOLD, 25);
Font fonte3 = new Font("Segoe UI", Font.BOLD, 15);
JLabel label = new JLabel("nVálida");
String dia = caixa1.getText();
public ValData(){
editarJanela();
}
public void editarJanela(){
janela.setVisible(true);
janela.setSize(150,140);
janela.setLocationRelativeTo(null);
janela.setDefaultCloseOperation(EXIT_ON_CLOSE);
janela.setResizable(false);
janela.setLayout(null);
janela.add(caixa1);
janela.add(caixa2);
janela.add(caixa3);
janela.add(botao);
janela.add(label);
caixa1.setBounds(16, 24, 25, 25);
caixa2.setBounds(45, 24, 25, 25);
caixa3.setBounds(75, 24, 54, 25);
caixa1.setFont(fonte3);
caixa2.setFont(fonte3);
caixa3.setFont(fonte3);
botao.setBounds(16, 50, 112, 25);
botao.setFont(fonte);
botao.addActionListener(this);
label.setBounds(27, 75, 112, 25);
label.setFont(fonte2);
label.setVisible(false);
}
public static void main(String[] args) {
new ValData();
}
public void actionPerformed(ActionEvent ae) {
String d = caixa1.getText();
String m = caixa1.getText();
String a = caixa1.getText();
int dia = Integer.parseInt(d);
int mes = Integer.parseInt(m);
int ano = Integer.parseInt(a);
if(
ano>=0 && ((mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12 && mes<13) && dia>0 && dia<32)
|| ((mes==4 || mes==6 || mes==9 || mes==11) && dia>0 && dia<31)
|| ((mes==2) && dia>0 && dia<29)
|| (ano % 4 == 0 && mes==2 && dia>0 && dia<30)
) {
label.setVisible(true);
label.setForeground(Color.green);
label.setText(" Válida");
}else{
label.setVisible(true);
label.setForeground(Color.red);
label.setText("Inválida");
}
}
}
desde ja vlw