C#根据身份证号码判断出生日期和性别

所属分类: 软件编程 / C#教程 阅读数: 106
收藏 0 赞 0 分享

18位的身份证,前面六位代表了你户籍所在地,第七位到第十四位代表了你的出生年月,第十五位到第十七为代表了你的性别(偶数为女,奇数为男),根据这一信息,我在系统开发的录入员工的身份证后控件焦点转移时根据身份证号码获得生日和性别。 

用C#写的代码如下:

/// <summary>
/// 在控件验证 textBox_IdentityCard 的 Validated事件中定义身份证号码的合法性并根据身份证号码得到生日和性别 
/// </summary>
private void textBox_IdentityCard_Validated(object sender, EventArgs e)
{
  try
  {
    //获取得到输入的身份证号码
    string identityCard = textBox_IdentityCard.Text.Trim();
    if (string.IsNullOrEmpty(identityCard))

    {

      //身份证号码不能为空,如果为空返回

      MessageBox.Show("身份证号码不能为空!");

      if (textBox_IdentityCard.CanFocus)

      {

        textBox_IdentityCard.Focus();//设置当前输入焦点为textBox_IdentityCard

      }

      return;

    }

    else

    {

      //身份证号码只能为15位或18位其它不合法

      if (identityCard.Length != 15 && identityCard.Length != 18)

      {

        MessageBox.Show("身份证号码为15位或18位,请检查!");

        if (textBox_IdentityCard.CanFocus)

        {

          textBox_IdentityCard.Focus();

        }

        return;

      }

    }
    string birthday = "";
    string sex = "";
    //处理18位的身份证号码从号码中得到生日和性别代码
    if (identityCard.Length == 18)
    {
      birthday = identityCard.Substring(6, 4) + "-" + identityCard.Substring(10, 2) + "-" + identityCard.Substring(12, 2);
      sex = identityCard.Substring(14, 3);

    }<br>

    //处理15位的身份证号码从号码中得到生日和性别代码
    if (identityCard.Length == 15)
    {
      birthday = "19" + identityCard.Substring(6, 2) + "-" + identityCard.Substring(8, 2) + "-" + identityCard.Substring(10, 2);
      sex = identityCard.Substring(12, 3);
    }<br>
    textBox_Birthday.Text = birthday;
    //性别代码为偶数是女性奇数为男性
    if (int.Parse(sex) % 2 == 0)
    {
      this.comboBox_Sex.Text = "女";
    }

    else
    {
      this.comboBox_Sex.Text = "男";
    }
  }
  catch (Exception ex)

  {

    MessageBox.Show("身份证号码输入有误");
    if (textBox_IdentityCard.CanFocus)
    {
      textBox_IdentityCard.Focus();
    }
    return;
  }
}

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

c#开发word批量转pdf源码分享

已经安装有Office环境,借助一些简单的代码即可实现批量Word转PDF,看下面的实例源码吧
收藏 0 赞 0 分享

c# xml API操作的小例子

这篇文章主要介绍了c# xml API操作的小例子,有需要的朋友可以参考一下
收藏 0 赞 0 分享

c#唯一值渲染实例代码

这篇文章主要介绍了c#唯一值渲染实例代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

淘宝IP地址库采集器c#代码

这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

C#在后台运行操作(BackgroundWorker用法)示例分享

BackgroundWorker类允许在单独的专用线程上运行操作。如果需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用BackgroundWorker类方便地解决问题,下面看示例
收藏 0 赞 0 分享

c#文本加密程序代码示例

这是一个加密软件,但只限于文本加密,加了窗口控件的滑动效果,详细看下面的代码
收藏 0 赞 0 分享

c#生成站点地图(SiteMapPath)文件示例程序

这篇文章主要介绍了c#生成站点地图(SiteMapPath)文件的示例,大家参考使用
收藏 0 赞 0 分享

C# 键盘Enter键取代Tab键实现代码

这篇文章主要介绍了C# 键盘Enter键取代Tab键实现代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

C# WinForm导出Excel方法介绍

在.NET应用中,导出Excel是很常见的需求,导出Excel报表大致有以下三种方式:Office PIA,文件流和NPOI开源库,本文只介绍前两种方式
收藏 0 赞 0 分享

C#串口通信程序实例详解

在.NET平台下创建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports,创建C#串口通信程序的具体实现是如何的呢?让我们开始吧
收藏 0 赞 0 分享
查看更多