본문 바로가기

Java

JAVA/자바/SimpleDateFormat/substring/charAt

SimpleDateFormat 을 이용하여 주민등록번호를 입력받으면, 생일을 출력하도록 해보자. 단, parseInt 를 사용하지 않도록 하자.
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class DateTest3 {
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
        	System.out.println("주민등록번호 : ");
		String jumin = scanner.nextLine();
        
		// substring(a, b) : 문자열의 a번째부터 b-1번째의 문자까지 가져온다.		
		int year = Integer.parseInt(jumin.substring(0, 2));		// 년 - 문자열
		int month = Integer.parseInt(jumin.substring(2, 4)) - 1;	// 월
		int day = Integer.parseInt(jumin.substring(4, 6));		// 일

		// 2000년대생인지 판별
		if(jumin.charAt(6) > '2') {		// charAt() 문자로 숫자 비교가능
			year += 100;
		}
	
		Date date =  new Date(year, month, day);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd(E)");	
		System.out.println(sdf.format(date));
	
	}
}

 

- 출력

 

주민등록번호 : 
8304221185600 (둘리 주민등록번호)

1983.04.22(금)