문제
키보드로 생년월일을 입력받아 오늘까지 살아온 날짜(일)을 계산하여 출력하는 프로그램 작성
ex) 생년월일 입력[ex. 2000-01-01] >> 2024-05-12
ex) [결과]태어난지 <1일>이 지났습니다
형식에 맞지 않는 생년월일을 입력한 경우 에러 메세지 출력 후 프로그램 종료
public class DayCalculateApp {
public static void main(String[] args) {
// Scanner, SimpleDateFormat, Date, try~catch
Scanner sc = new Scanner(System.in);
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.print("생년월일 입력[ex) 2000-01-01] >> ");
String birthday = sc.nextLine();
try {
// String >> Date로
// parse() 메소드는 ParseException 에러 발생할 수 있음
Date birthdayDate = dateFormat.parse(birthday);
// 생일, 현재 날짜 초로 변환
long birthdayTime = birthdayDate.getTime();
long currentTime = currentDate.getTime();
System.out.println("[결과] 태어난지 <" + (currentTime - birthdayTime)
/ (1000 * 86400) + "일>이 지났습니다.");
} catch (ParseException e) {
System.out.println("[에러] 형식에 맞지 않는 생년월일을 입력했습니다.");
System.exit(0);
}
sc.close();
}
}
public class DayCalculateApp {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date birthday=null;
System.out.print("생년월일 입력[ex. 2000-01-01] >> ");
try {
//키보드로 입력받은 생년월일(String 객체)을 Date 객체로 변환하여 저장
// => 키보드로 입력받은 생년월일이 SimpleDateFormat 객체의 패턴정보와 일치하지
//않을 경우 ParseException 발생
birthday=dateFormat.parse(scanner.nextLine());
} catch (ParseException e) {
System.out.println("[에러]생년월일을 형식에 맞게 입력해 주세요.");
System.exit(0);
} finally {
scanner.close();
}
//살아온 날짜를 계산하여 출력
long day=(System.currentTimeMillis()-birthday.getTime())/(1000*60*60*24);
System.out.println("[결과]태어난지 <"+day+">일 지났습니다.");
}
}