import java.time.LocalDate;
import java.util.Date;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.Callable;
public class Evento {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int ano_escolhido = 0;
int mes_escolhido = 0;
int dia_escolhido = 0;
int ano_atual = LocalDate.now().getYear();
while(true){
try{
System.out.println("Informe o ano !");
ano_escolhido = teclado.nextInt();
if(ano_escolhido!=ano_atual){
System.out.println("Inválido ! Apenas 2026 !");
continue;
}
break;
}catch (InputMismatchException e){
System.out.println("Inválido ! Apenas números ");
teclado.nextLine();
}
}while(true){
try{
System.out.println("Informe o mês !");
mes_escolhido = teclado.nextInt();
if(mes_escolhido<1 || mes_escolhido>12){
System.out.println("Apenas meses entre Janeiro e Dezembro (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_escolhido = teclado.nextInt();
if(mes_escolhido==1 || mes_escolhido==3 || mes_escolhido==5 || mes_escolhido==7 || mes_escolhido==8 || mes_escolhido==10 || mes_escolhido==12){
while(dia_escolhido>31 || dia_escolhido<1){
System.out.println("Apenas dias entre 1-31 !");
dia_escolhido = teclado.nextInt();}
} else if (mes_escolhido==4 || mes_escolhido==6 || mes_escolhido==9 || mes_escolhido==11) {
while(dia_escolhido>30 || dia_escolhido<1){
System.out.println("Apenas dias entre 1-30 !");
dia_escolhido = teclado.nextInt();}
}else {
while(dia_escolhido>28 || dia_escolhido<1){
System.out.println("Fevereiro ! Apenas 28 dias !");
dia_escolhido = teclado.nextInt();
}
}
break;}catch (InputMismatchException e){
}
}
LocalDate data_Atual = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/YYYY");
String atual_formatada = String.valueOf(data_Atual.format(formatter));
LocalDate data_escolhida = LocalDate.of(ano_escolhido, mes_escolhido, dia_escolhido);
String escolha_format = String.valueOf(data_escolhida.format(formatter));
System.out.printf("Data do evento: %S\n", escolha_format);
System.out.printf("Data de hoje: %S\n", atual_formatada);
if(data_Atual.isBefore(data_escolhida)){
System.out.println("O Evento ainda vai acontecer !");
} else if (data_Atual.isAfter(data_escolhida)) {
System.out.println("O Evento já aconteceu !");
}else {
System.out.println("O Evento é hoje !");
}
}
}