개발

[java] 주민등록번호로 14세 미만 여부를 확인 코드

조용한닭 2023. 12. 15. 09:22
728x90
반응형

가입시 14세미만인지 아닌지 체크할 필요가 있다.

 

코드

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class AgeChecker {

    public static boolean isUnder14(String jumin) {
        // 주민등록번호에서 생년월일 추출
        String birthYear = "19" + jumin.substring(0, 2); // 생년(YY)
        String birthMonth = jumin.substring(2, 4);      // 생월(MM)
        String birthDay = jumin.substring(4, 6);        // 생일(DD)

        // 생년월일 문자열을 Date 객체로 변환
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
        Date birthDate;
        try {
            birthDate = dateFormat.parse(birthYear + birthMonth + birthDay);
        } catch (ParseException e) {
            e.printStackTrace();
            return false;
        }

        // 현재 날짜와 비교하여 14세 미만인지 확인
        long ageLimitMillis = System.currentTimeMillis() - (14L * 365 * 24 * 60 * 60 * 1000);
        Date ageLimit = new Date(ageLimitMillis);
        return birthDate.after(ageLimit);
    }

    public static void main(String[] args) {
        String jumin = "YYMMDD-XXXXXXX"; // 대한민국 주민등록번호 입력

        // '-' 기호 제거
        jumin = jumin.replaceAll("-", "");

        if (jumin.length() != 13) {
            System.out.println("주민등록번호는 13자리여야 합니다.");
            return;
        }

        if (isUnder14(jumin)) {
            System.out.println("14세 미만입니다.");
        } else {
            System.out.println("14세 이상입니다.");
        }
    }
}

 

 

이 코드에서는 isUnder14() 메서드를 사용하여 14세 미만 여부를 확인합니다.

주민등록번호에서 생년월일을 추출하고, 이를 SimpleDateFormat을 사용하여 Date 객체로 변환합니다.

그런 다음, 현재 날짜와 비교하여 14세 미만 여부를 결정합니다.

 

 

 

728x90
반응형

'개발' 카테고리의 다른 글

클라우드(Cloud)란?  (1) 2023.12.20
undefined symbols for architecture arm64 에러 원인  (0) 2023.12.15
gRPC가 무엇인가요?  (0) 2023.12.12
도커(Docker) 무엇일까?  (0) 2023.12.11
비동기 프로그래밍이란?  (0) 2023.12.08