VB(A)

주민번호로 만나이 구하기(외국인 포함)

당근쨈 2016. 12. 3. 11:42

주민번호로 만나이 구하는 사용자정의함수.

외국인과 특정 날짜일 때의 나이를 구하는 코드.



Option Explicit
 
Function GetYear(IDNumber As Range, Optional GetDay As Date = 0As Integer
    '주민번호를 받아서 만 나이를 구하는 사용자정의함수입니다.
 
    Dim BirthYear As Integer
    Dim BirthDay As Date
    
    '데이터베이스 최초등록날짜를 지정하지 않으면 오늘 날짜를 변수에 반환합니다.
    If GetDay = 0 Then
        GetDay = Now
    End If
    
    '주민번호 7번째 숫자를 인식하여 1900년대생인지 2000년대생인지 구분합니다.
    Select Case Mid(IDNumber.Text, 81)
        Case 1256
            BirthYear = 19
            
        Case 3478
            BirthYear = 20
            
        Case Else
            GetYear = "주민번호를 확인하세요"
            Exit Function
    End Select
    
    With IDNumber
        BirthDay = DateSerial(BirthYear & Left(.Text, 2), Mid(.Text, 32), Mid(.Text, 52))
    End With
    
    GetYear = DateDiff("yyyy", BirthDay, GetDay)
    
End Function
 

cs


나이.xlsm