调用方法 把身份证字符串传进来 可返回生日数字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
-( NSString *)birthdayStrFromIdentityCard:( NSString *)numberStr{ if (EMPTY_NIL_STR(numberStr)) return nil ; NSMutableString *result = [ NSMutableString stringWithCapacity : 0 ]; NSString *year = nil ; NSString *month = nil ; BOOL isAllNumber = YES ; NSString *day = nil ; if ([numberStr length ]< 1 4 ) return result; //**截取前14位 NSString *fontNumer = [numberStr substringWithRange :NSMakeRange( 0 , 1 3 )]; //**检测前14位否全都是数字; const char *str = [fontNumer UTF8String ]; const char *p = str; while (*p!=' 0 ') { if (!(*p>=' 0 '&&*p<=' 9 ')) isAllNumber = NO ; p++; } if (!isAllNumber) return result; year = [numberStr substringWithRange :NSMakeRange( 6 , 4 )]; month = [numberStr substringWithRange :NSMakeRange( 1 0 , 2 )]; day = [numberStr substringWithRange :NSMakeRange( 1 2 , 2 )]; [result appendString :year]; [result appendString : @"-" ]; [result appendString :month]; [result appendString : @"-" ]; [result appendString :day]; return result; } |
把身份证号码的字符串传进来通过数据返回性别
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
-( NSString *)sexStrFromIdentityCard:( NSString *)numberStr{ NSString *result = nil ; BOOL isAllNumber = YES ; if ([numberStr length ]< 1 7 ) return result; //**截取第17为性别识别符 NSString *fontNumer = [numberStr substringWithRange :NSMakeRange( 1 6 , 1 )]; //**检测是否是数字; const char *str = [fontNumer UTF8String ]; const char *p = str; while (*p!=' 0 ') { if (!(*p>=' 0 '&&*p<=' 9 ')) isAllNumber = NO ; p++; } if (!isAllNumber) return result; int sexNumber = [fontNumer integerValue ]; if (sexNumber% 2 == 1 ) result = @"男" ; ///result = @"M"; else if (sexNumber% 2 == 0 ) result = @"女" ; //result = @"F"; return result; } |