18位的身份z,前面六位代表了你户籍所在地,第七位到第十四位代表了你的出生年月,第十五位到第十七为代表了你的性别(偶数为女,奇数为男),根据这一信息,我在系统开发的录入员工的身份z后控件焦点转移时根据身份z号码获得生日和性别。
用C#写的代码如下:
/// <summary>/// 在控件验证 textBox_IDentityCard 的 ValIDated事件中定义身份z号码的合法性并根据身份z号码得到生日和性别 /// </summary>private voID textBox_IDentityCard_ValIDated(object sender,EventArgs e){ try { //获取得到输入的身份z号码 string IDentityCard = textBox_IDentityCard.Text.Trim(); if (string.IsNullOrEmpty(IDentityCard)) { //身份z号码不能为空,如果为空返回 MessageBox.Show("身份z号码不能为空!"); if (textBox_IDentityCard.CanFocus) { textBox_IDentityCard.Focus();//设置当前输入焦点为textBox_IDentityCard } return; } else { //身份z号码只能为15位或18位其它不合法 if (IDentityCard.Length != 15 && IDentityCard.Length != 18) { MessageBox.Show("身份z号码为15位或18位,请检查!"); if (textBox_IDentityCard.CanFocus) { textBox_IDentityCard.Focus(); } return; } } string birthday = ""; string sex = ""; //处理18位的身份z号码从号码中得到生日和性别代码 if (IDentityCard.Length == 18) { birthday = IDentityCard.Substring(6,4) + "-" + IDentityCard.Substring(10,2) + "-" + IDentityCard.Substring(12,2); sex = IDentityCard.Substring(14,3); }<br> //处理15位的身份z号码从号码中得到生日和性别代码 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("身份z号码输入有误"); if (textBox_IDentityCard.CanFocus) { textBox_IDentityCard.Focus(); } return; }}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的C#根据身份z号码判断出生日期和性别全部内容,希望文章能够帮你解决C#根据身份z号码判断出生日期和性别所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)