当前位置:首页 > 通信资讯 > 正文

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

用C#写的代码如下:

?
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394/// <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;}}

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

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。