IOS 根据身份证号码获取 年龄 生日 性别

/**

从身份证上获取年龄 18位身份证

*/

-(NSString *)getIdentityCardAge:(NSString *)numberStr

{

NSDateFormatter *formatterTow = [[NSDateFormatter alloc]init];

[formatterTow setDateFormat:@"yyyy-MM-dd"];

NSDate *bsyDate = [formatterTow dateFromString:[self birthdayStrFromIdentityCard:numberStr]];

NSTimeInterval dateDiff = [bsyDate timeIntervalSinceNow];

int age = trunc(dateDiff/(60*60*24))/365;

return [NSString stringWithFormat:@"%d",-age];

}

-(NSString *)birthdayStrFromIdentityCard:(NSString *)numberStr

{

NSMutableString *result = [NSMutableString stringWithCapacity:0];

NSString *year = nil;

NSString *month = nil;

BOOL isAllNumber = YES;

NSString *day = nil;

if([numberStr length]<18)

return result;

//**从第6位开始 截取8个数

NSString *fontNumer = [numberStr substringWithRange:NSMakeRange(6, 8)];

//**检测前12位否全都是数字;

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 = [NSString stringWithFormat:@"19%@",[numberStr substringWithRange:NSMakeRange(8, 2)]];

//    NSLog(@"year ==%@",year);

month = [numberStr substringWithRange:NSMakeRange(10, 2)];

//    NSLog(@"month ==%@",month);

day = [numberStr substringWithRange:NSMakeRange(12,2)];

//    NSLog(@"day==%@",day);

[result appendString:year];

[result appendString:@"-"];

[result appendString:month];

[result appendString:@"-"];

[result appendString:day];

//    NSLog(@"result===%@",result);

return result;

}

/**

*  从身份证上获取性别

*/

-(NSString *)getIdentityCardSex:(NSString *)numberStr

{

NSString *sex = @"";

//获取18位 二代身份证  性别

if (numberStr.length==18)

{

int sexInt=[[numberStr substringWithRange:NSMakeRange(16,1)] intValue];

if(sexInt%2!=0)

{

NSLog(@"1");

sex = @"男";

}

else

{

NSLog(@"2");

sex = @"女";

}

}

//  获取15位 一代身份证  性别

if (numberStr.length==15)

{

int sexInt=[[numberStr substringWithRange:NSMakeRange(14,1)] intValue];

if(sexInt%2!=0)

{

NSLog(@"1");

sex = @"男";

}

else

{

NSLog(@"2");

sex = @"女";

}

}

return sex;

}

时间: 2024-10-11 21:51:50

IOS 根据身份证号码获取 年龄 生日 性别的相关文章

通过身份证号码获取人的年龄和性别

通过身份证号码获取人的年龄和性别:身份证可以识别一个人的信息,下面就介绍一下如何利用js通过身份证号码获取当事人的年龄和性别.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂

SQL 根据身份证号码获取年龄的函数

在数据库的运用过程中,我们时常会碰到根据身份证号码来获取当前的年龄,今天我在这里写了一个函数,就是关于获取年龄的 create or replace function FUNC_COMPARE_SFZHM( sfzhm in varchar2) --输入身份证号码 return number /* 函数说明,返回值0为小于18岁:值为1是大于75岁:其他情况是返回值为2 在这个函数里用到了trunc(months_between()) 然后就是将身份证号码里的年月日组合成'yyyy-mm-dd'

【代码笔记】传身份证号码可返回生日字符串

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. NSString *birthDay=[self birthdayStrFromIdentityCard:@"134825194401014241"]; NSLog(@"--birthDay-%@",birthDay); } //传身份证返回生日字符串 -(NSString

php提取身份证号码中的生日日期以及验证是否为未成年人的函数

php 提取身份证号码中的生日日期以及确定是否成年的一个函数.可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下: <?php //用php从身份证中提取生日,包括15位和18位身份证 function getIDCardInfo($IDCard){ $result['error']=0;//0:未知错误,1:身份证格式错误,2:无错误 $result['flag']='';//0标示成年,1标示未成年 $result['tdate']='';//生日,格式如:2012-

传身份证号码可返回生日字符串

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. NSString *birthDay=[self birthdayStrFromIdentityCard:@"134825194401014241"]; NSLog(@"--birthDay-%@",birthDay); } //传身份证返回生日字符串 -(NSString

C#根据身份证号码,计算生日、年龄、性别

朋友谈及身份证相关的信息,才了解到原来省份证号码中包含了年龄和性别. 这样在数据库中,就不必单独留字段存放它们了(不过,要根据具体情况来,要是读取频率较高,还是单独列出为好),这样顺带解决了年龄变更的问题. 程序仅仅为了实现这个功能,里面还是需要数据验证的,用户输入的信息,毕竟在猿类看来,都是“非法的”.废话不多说了,贴上我写的程序,还请路过的大神斧正: using System; using System.Collections.Generic; using System.Linq; usin

输入身份证号码自动读取生日与性别(delphi)

一.格式介绍: [15位号码格式] 1.第l一6位数为行政区划代码; 2.第7-12位数为出生日期代码; 3.第13---15位数为分配顺序代码; (1).行政区划代码,是指公民第一次申领居民身份证时的常住户口所在地的行政地区. (2).出生日期代码,第7-8位数代表年份(年份前面二位数省略),第9-10位数代表月份(月份为l位数的前面加零).第11一12位数代表日期(日期为1位数的前面加零). (3).分配顺序代码,是按人口数统一合理分配以固定顺序给予每个人的顺序号,最末一位数是奇数的分配给男

JS根据身份证号码算年龄

如果把身份证号码传到页面上,在前端页面获取年龄就需要用到JS脚本了: function GetAge(identityCard) { var len = (identityCard + "").length; if (len == 0) { return 0; } else { if ((len != 15) && (len != 18))//身份证号码只能为15位或18位其它不合法 { return 0; } } var strBirthday = "&qu

根据身份证号码获取身份信息

package com.hshy.util; import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.HashMap;import java.util.Map; import org.apache.commons.lang.StringUtils; public class IdcardUti