연구개발 이야기

주민등록번호 뒷자리 체크하는 Obj-C 소스예

금메달.아빠 2015. 9. 18. 02:14

주민등록번호 뒷자리의 의미는 다른 인터넷에 많이 공개되어 있으므로 로직의 설명은 생략한다. 소스코드에 대해서도 일반적으로 많이 발견되지만 iOS의 오브젝티브-C 에서 구현된 소스를 구현해 본다.

//주민번호 뒷자리(7자리) 체크

NSString *S = @"7701231023456";

NSString *JKEY = @"234567892345";
NSInteger sum = 0;

for (NSInteger K = 0; K < 12; K++)
{
    sum += [[S substringWithRange:NSMakeRange(K, 1)] integerValue] *
             [[JKEY substringWithRange:NSMakeRange(K, 1)] integerValue];
}
NSInteger checkdigit = (11 - (sum % 11)) % 10;
NSLog(@"주민번호 조건: 주민번호(%@) 끝자리가 %ld와 일치해야 한다.", S, (long)checkdigit);
BOOL isCheckedOK = [[S substringFromIndex:12] isEqualToString: [@(checkdigit) stringValue]];