Olá, boa noite a todos.
Estou fazendo um curso de Java, chegamos agora em condicionais, e uma das tarefas é a seguinte: criar um programa no qual o usuário informa uma data (expressa em dd/mm/aaaa) e deve ter, como retorno, o dia seguinte ao por ele informado. O problema: o professor não quer que usemos o pacote java.util.date ou similares, devemos resolver apenas com if/else. Além do mais, é preciso levar em conta que fevereiro tem 28 dias e que temos anos bissextos.
Eu até consegui fazer o programa funcionar sem levar em conta fevereiro e os anos bissextos, mas não tenho a mínima ideia de onde colocar essas duas informações no código para fazê-lo funcionar adequadamente.
Segue abaixo o que eu já fiz:
Scanner entradaDeDados = new Scanner (System.in);
System.out.println("Insira uma data (no formato DD/MM/AAAA)");
System.out.println("Dia: ");
int dia = entradaDeDados.nextInt();
System.out.println("Mês: ");
int mes = entradaDeDados.nextInt();
System.out.println("Ano: ");
int ano = entradaDeDados.nextInt();
int novoDia = dia + 1;
int novoMes = mes + 1;
int novoAno = ano + 1;
if (novoDia > 31) {
mes = novoMes;
novoDia = 01;
if (novoMes > 12) {
ano = novoAno;
novoMes = 01;
System.out.println(novoDia + "/" + novoMes + "/" + novoAno);
} else
System.out.println(novoDia + "/" + novoMes + "/" + ano);
} else
System.out.println(novoDia + "/" + mes + "/" + ano);
entradaDeDados.close();
}
}
Seguem os testes e seus respectivos resultados:
- Entrada 01/01/2000 resulta em 02/01/2000;
- Entrada 31/01/2000 resulta em 01/02/2000;
- Entrada 31/12/2000 resulta em 01/01/2001.
Agora eu preciso fazer a entrada 28/02/2002 resultar em 29/02/2002, e a entrada 28/02/2003 resultar em 01/03/2003, mas não consigo nem imaginar por onde começar.
Agradeço antecipadamente!