import java.util.Date;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.time.format.DateTimeFormatter;
import java.time.LocalDate;
public class AjustVencimento {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int ano = 0;
int dia = 0;
int mes = 0;
int newmonths = 0;
int ano_Atual = LocalDate.now().getYear();
System.out.println("Informe a data:");
while(true){
try{
System.out.println("Informe o ano:");
ano = teclado.nextInt();
if(ano!=ano_Atual){
System.out.printf("Opção inválida ! Apenas %S\n", ano_Atual);
continue;
}
break;}
catch (InputMismatchException e){
System.out.println("Apenas números !");
teclado.nextLine();}
}
while(true){
try{
System.out.println("Informe o mês: ");
mes = teclado.nextInt();
if(mes>12 || mes<1){
System.out.println("Opção inválida ! Apenas meses de 1-12 !");
continue;
}
break;}
catch (InputMismatchException e){
System.out.println("Apenas números !");
teclado.nextLine();
}
}
while(true){
try{
System.out.println("Informe o dia: ");
dia = teclado.nextInt();
if(mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12){
while(dia>31 || dia<1){
System.out.println("Apenas dias maiores que 1 e menores ou iguais a 31 !");
System.out.println("Novamente: ");
dia = teclado.nextInt();
}} else if (mes==4 || mes==6 || mes==9 || mes==11) {
while(dia>30 || dia<1){
System.out.println("Apenas dias maiores que 1 e menores ou iguais a 30 !");
System.out.println("Novamente:");
dia = teclado.nextInt();
}
}else {
while(dia>28 || dia<1){
System.out.println("Fevereiro ! Apenas maiores que 1 e menores ou iguais a 28! ");
System.out.println("Novamente:");
dia = teclado.nextInt();
}
}
break;}
catch (InputMismatchException e){
System.out.println("Apenas números !");
teclado.nextLine();
}
}
LocalDate dataComp = LocalDate.of(ano, mes, dia);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/YYYY");
String dataformatada = String.valueOf(dataComp.format(formatter));
System.out.println(dataformatada);
System.out.println("Quantos meses vai adicionar?");
newmonths = teclado.nextInt();
LocalDate mesadd = dataComp.plusMonths(newmonths);
String mesformatado = String.valueOf(mesadd.format(formatter));
System.out.println(mesformatado);
}
}