怎样从身份证号中提取出生日期和性别。。帮个忙吧。俺是菜鸟

maxyigehaoren 2012-04-04 11:06:50



我是个小白啊。。。向高手们请教。。谢谢了。
...全文
612 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯疯癫癫 2012-04-05
  • 打赏
  • 举报
回复
我也第一次听说,看来我肤浅了...
[Quote=引用 14 楼 的回复:]
刚知道身份证号还能分辨性别!
[/Quote]
htlotus11 2012-04-05
  • 打赏
  • 举报
回复
同意4楼,5楼的!!
assky124 2012-04-05
  • 打赏
  • 举报
回复

/// <summary>
/// 获取性别
/// </summary>
/// <param name="cardId"></param>
/// <returns></returns>
public virtual bool GetSex(string cardId)
{
if (RegexCard(cardId))
{
string sexCode = string.Empty;
if (cardId.Length == 15)
{
sexCode = cardId.Substring(14, 1);
}
else
{
//18位身份证取第17位数
sexCode = cardId.Substring(16, 1);
}
int sexNum = int.Parse(sexCode);
return GetSex(sexNum);
}
else
{
throw new Exception("未通过身份验证!");
}
}

private bool GetSex(int sexNum)
{
if (sexNum % 2 == 1)
{
return true;
}
else
{
return false;
}
}
cjh200102 2012-04-05
  • 打赏
  • 举报
回复
楼上很详细
xingn 2012-04-05
  • 打赏
  • 举报
回复
str.substring()
无常名 2012-04-05
  • 打赏
  • 举报
回复
刚知道身份证号还能分辨性别!
orochiheart 2012-04-05
  • 打赏
  • 举报
回复
我顶 4L 5L
码奴一只 2012-04-05
  • 打赏
  • 举报
回复
3楼 +1 按这个思路就可以
st200316 2012-04-05
  • 打赏
  • 举报
回复
SubString 取对应数据就好了 身份证 倒数第二位 偶数代表女 奇数代表男
orochiheart 2012-04-05
  • 打赏
  • 举报
回复
SubString(第几位开始,共截取几位)
杨友山 2012-04-05
  • 打赏
  • 举报
回复
利用查询网站,然后截取内容。
抓取网页
fangpengyu 2012-04-05
  • 打赏
  • 举报
回复
只要查查身份证的编码规则,应该很好解决
herryking 2012-04-05
  • 打赏
  • 举报
回复
原来倒数第二位是判断性别的,我也才知道
dsmetty 2012-04-05
  • 打赏
  • 举报
回复
我也是性别
maxyigehaoren 2012-04-04
  • 打赏
  • 举报
回复
谢谢各位大神。。。我懂了。。。灰常感谢啊。。!!!
mizuho_2006 2012-04-04
  • 打赏
  • 举报
回复
首先判断长度是15位还是18位,因为旧身份证的生日是yyMMdd格式,而新身份证是yyyyMMdd格式。
判断完位数后就可以使用字符串截取函数来获得生日了,新旧两种省份证的获取方法不同,自己看位数写吧。
EnForGrass 2012-04-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

string id="500223198809234421";
string birthday=id.SubString(6,8);
if(int.Parse(id.SubString(15,16))/2==0)
{
MessageBox.Show("女")
}
else
{
MessageBox.Show("男")
}
[/Quote]
改一下我以18位为例

string id="500223198809234421";
string birthday=id.SubString(6,8);
if(int.Parse(id.SubString(15,16))%2==0)
{
MessageBox.Show("女")
}
else
{
MessageBox.Show("男")
}

EnForGrass 2012-04-04
  • 打赏
  • 举报
回复
string id="500223198809234421";
string birthday=id.SubString(6,8);
if(int.Parse(id.SubString(15,16))/2==0)
{
MessageBox.Show("女")
}
else
{
MessageBox.Show("男")
}
accomp 2012-04-04
  • 打赏
  • 举报
回复
身份证 分15位和18位
15位生日是 第7-12位
18位生日是 7-14位

性别,15位的第15位单双判断,18位的第17位单双判断
快溜 2012-04-04
  • 打赏
  • 举报
回复
substring
加载更多回复(1)

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧