Estou realizando uma tarefa da faculdade e gostaria de saber: como posso pegar a data de nascimento do usuário usando o Date?
Sem saber mais sobre sua tarefa fica díficil de ajudar, mas supondo que a ideia é que o usuario entre com a data pelo terminal, vc poderia fazer assim:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Main {
public static void main(String... args) {
try (final Scanner scan = new Scanner(System.in)) {
exemplo1(scan);
exemplo2(scan);
}
}
private static void exemplo1(final Scanner scan) {
System.out.println("Entre com a data do seu nascimento: (dd/mm/yyyy) ");
final String str = scan.nextLine();
/**************************************
* Usando Date
**************************************/
try {
final Date data = new SimpleDateFormat("dd/MM/yyyy").parse(str);
System.out.printf("Saída com Date: %s\n", data);
} catch (final ParseException e) {
System.out.println("O formato da data está errado");
}
/**************************************
* Usando LocalDate
**************************************/
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd/MM/yyyy");
final LocalDate data = LocalDate.parse(str, fmt);
System.out.printf("Saída com LocalDate: %s\n", data);
}
private static void exemplo2(final Scanner scan) {
System.out.println("\nEntre com o dia do seu nascimento: ");
final int dia = scan.nextInt();
System.out.println("Entre com o mês do seu nascimento: ");
final int mes = scan.nextInt();
System.out.println("Entre com o ano do seu nascimento: ");
final int ano = scan.nextInt();
final Calendar data1 = new GregorianCalendar(ano, mes - 1, dia);
final LocalDate data2 = LocalDate.of(ano, mes, dia);
System.out.printf("Saída com Date: %s\n", data1.getTime());
System.out.printf("Saída com LocalDate: %s\n", data2);
}
}
Eu crie 2 métodos pra demonstrar 2 possíveis formas que eu pensei. No exemplo 1, o usuário deve inserir a data completa e no exemplo 2 ele insere dia, depois mes e depois ano.
Eu mostrei como fazer usando o Date
e também o LocalDate
que é mais novo e mais poderoso.
No exemplo 1, usando Date, vc vê que eu tive que tratar uma exceção. O método parse do LocalDate também lança uma exceção caso o formato esteja errado. A diferença é que o compilador não te obriga a tratar a exceção lançada pelo LocalDate, pois ela é uma Unchecked Exception.