Boa noite pessoal, queria saber se alguém pode me ajudar a encontrar a solução para meu problema . Então, sou nova nisso, algo de errado não está certo no meu programa, na minha lógica rs. Toda vez aparece como data inválida até mesmo pras datas que são válidas. Alguém pode me ajudar pfvr … grata desde já <3
ps : já tentei um monte de jeito .
segue meu cód
import java.util.Scanner;
public class DataValidaPraVoce {
public static void main (String[] args) {
Scanner scanner = new Scanner (System.in);
int dia , mes , ano ;
System.out.println("Digite o dia :");
dia = scanner.nextInt();
System.out.println("Digite o mês :");
mes = scanner.nextInt();
System.out.println("Digite o ano :");
ano = scanner.nextInt();
if ( mes < 1 || mes > 12 ) {
System.out.println(" DATA INVÁLIDA");
} else if ( mes == 4 || mes == 6 || mes == 9 || mes == 11 && dia > 30 ){
System.out.println("DATA INVÁLIDA");
} else if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12 && dia > 31 ){
System.out.println("data inválida");
} if ( mes == 2 ) {
if ( mes == 2 && dia ==29 && ano % 4 == 0 && ano % 100 != 0 || ano % 400 == 0 ) {
System.out.println(" Data válida ");
} if ( mes == 2 && dia > 28 && ano % 4 != 0 && ano % 100 == 0 || ano % 400 != 0 ) {
System.out.println("Data inválida ");
} else {
System.out.println(" Data válida");
}}
}
}