亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

C#實現的18位身份證號碼最新算法[驗證部分]

系統 2138 0

private void btnVerification_Click(object sender, EventArgs e)
{
Regex reg = new Regex(@"^\d{17}(\d|X)");
string sTemp=tbVerification.Text;
lbCardInfo.Items.Clear();
if (sTemp == string.Empty)
{
MessageBox.Show("沒有輸入任何身份證號碼","請注意",MessageBoxButtons.OK,MessageBoxIcon.Warning);
return;
}
if (sTemp.Length != 18)
{
MessageBox.Show("輸入身份證號碼的長度應為18位", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (reg.Matches(sTemp).Count==0)
{
MessageBox.Show("輸入身份證號碼的格式有誤", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}

if (!isDiscValid(sTemp.Substring(0,6)))
{
MessageBox.Show("輸入的身份證號碼行政區劃代碼無效", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}

if (!isBirthValid(sTemp.Substring(6, 8)))
{
MessageBox.Show("輸入的身份證號碼出生日期無效", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
lbCardInfo.Items.Add(string.Format("出生日期:{0}年{1}月{2}日", sTemp.Substring(6, 4), sTemp.Substring(10, 2), sTemp.Substring(12, 2)));

if (!isSexValid(sTemp.Substring(14, 3)))
{
MessageBox.Show("輸入的身份證號碼性別順序碼無效", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
{
lbCardInfo.Items.Add("性別:"+((Convert.ToInt32(sTemp.Substring(14, 3)) % 2==0) ? "女" : "男"));
}

if (!isParityValid(sTemp))
{
MessageBox.Show("輸入的身份證號碼驗證碼無效", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
lbCardInfo.Items.Insert(0, "身份證號:" + sTemp);
lbCardInfo.Items.Insert(0, "驗證解讀信息:");
lbCardInfo.Items.Add("完成驗證!");
gbCardInfo.Visible = true;
}

#region
private void GetDiscInfo(string sFilenName)
{
if (File.Exists(sFilenName))
{
using (StreamReader sr = new StreamReader(Environment.CurrentDirectory + @"\" + sFilenName, Encoding.Default))
{
string sLine = string.Empty;
Regex re = new Regex(@"[\s]{1,}", RegexOptions.Compiled);
while (!sr.EndOfStream)
{
sLine = sr.ReadLine();
sLine = re.Replace(sLine, " ");
string[] sTemp = sLine.Split(new char[] { ' ' });

if (sTemp[0].EndsWith("0000"))
{
provinceCode.Add(new clsAdministrativeDivisionsCode(sTemp[0], sTemp[1]));
}
else
{
if (sTemp[0].EndsWith("00"))
cityCode.Add(new clsAdministrativeDivisionsCode(sTemp[0], sTemp[1]));
else
if (sTemp[1].EndsWith("市轄區"))
cityCode.Add(new clsAdministrativeDivisionsCode(sTemp[0], " " + sTemp[1]));
else
cityCode.Add(new clsAdministrativeDivisionsCode(sTemp[0], " " + sTemp[1]));
}
}
}
}
else
{
MessageBox.Show("文件{0}不存在!", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}

private List<clsAdministrativeDivisionsCode> GetSomeCodes(string sCondition)
{
List<clsAdministrativeDivisionsCode> tempCity = new List<clsAdministrativeDivisionsCode>();
foreach (clsAdministrativeDivisionsCode temp in cityCode)
if (sCondition == temp.AdCode.Substring(0, 2))
tempCity.Add(temp);
return tempCity;
}

private string GenParityBit(string s17)
{
int[] Weight = new int[] { 7, 9 ,10, 5 ,8, 4, 2 ,1, 6 ,3, 7, 9, 10, 5, 8 ,4, 2};
string Parity = "10X98765432";
int s = 0;
for (int i = 0; i < s17.Length; i++)
{
s += Int32.Parse(s17[i].ToString())*Weight[i];
}
return Parity[s % 11].ToString();
}

//iSex=0 男
private List<string> GenRnd(int iSex)
{
Random rd=new Random();
List<string> sTemp = new List<string>();
int i=0;
while(i<maxNum)
{
int rndNum = rd.Next(0,1000);
if(rndNum % 2 == iSex)rndNum++;
if (rndNum >= 1000) continue;
string s3=rndNum.ToString().PadLeft(3,'0');
if(!sTemp.Contains(s3))
{
sTemp.Add(s3);
i++;
}
}
return sTemp;
}

private List<string> GetID()
{
List<string> tempID = new List<string>();
List<string> sexRndNum = GenRnd(rbMan.Checked?0:1);
string str18 = string.Empty;
for (int i = 0; i < maxNum; i++)
{
string str17=string.Empty;
string sCity = cbCities.SelectedValue.ToString();
string sYMD=dtpBirth.Value.Year.ToString() + dtpBirth.Value.Month.ToString().PadLeft(2, '0') + dtpBirth.Value.Day.ToString().PadLeft(2, '0');
str17=sCity+sYMD+sexRndNum[i];
str18 = str17 + GenParityBit(str17);
tempID.Add(str18);
}
return tempID;
}

private bool isDiscValid(string s)
{
bool iFlag = false;
foreach (clsAdministrativeDivisionsCode cadc in cityCode)
{
if (cadc.AdCode == s)
{
string st = s.Substring(0, 2);
foreach (clsAdministrativeDivisionsCode capc in provinceCode)
{
if (capc.AdCode.Substring(0, 2) == st)
{
lbCardInfo.Items.Add("省或直轄市名稱:" + capc.AdName);
break;
}
}

foreach (clsAdministrativeDivisionsCode caac in cityCode)
{
if (caac.AdCode == s.Substring(0, 4) + "00")
{

lbCardInfo.Items.Add("市名稱:" + caac.AdName.TrimStart());
break;
}
}

lbCardInfo.Items.Add("地區名稱:" + cadc.AdName.TrimStart());
iFlag = true;
break;
}
}
return iFlag;
}

private bool isBirthValid(string s)
{
string sYear = s.Substring(0, 4);
string sMonth = s.Substring(4, 2);
string sDay = s.Substring(6, 2);
DateTime dt;
if (DateTime.TryParse(string.Format("{0}-{1}-{2}", sYear, sMonth, sDay), out dt))
{
if (dt > DateTime.Now)
return false;
else
return true;
}
else
return false;

}

private bool isSexValid(string s)
{
return s == "000" ? false : true;
}

private bool isParityValid(string s18)
{
int[] Weight = new int[] { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
string Parity = "10X98765432";
string s17 = s18.Substring(0, 17);
int s = 0;
for (int i = 0; i < s17.Length; i++)
{
s += Int32.Parse(s17[i].ToString()) * Weight[i];
}
return Parity[s % 11].ToString() == s18.Substring(17, 1) ? true : false;
}

#endregion

界面演示如下:

ID INTERFACE

C#實現的18位身份證號碼最新算法[驗證部分]

這里是主要的驗證部分,如有需要全部源代碼的,請在評論中留下你的E-MAIL。

C#實現的18位身份證號碼最新算法[驗證部分]


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产网站免费视频 | 国产成人综合洲欧美在线 | 天天干天天曰天天操 | a毛片a毛片a视频 | 特黄特级高清免费视频毛片 | 久久精品六 | 狠狠干.com | 欧美综合图 | 亚欧精品一区二区三区四区 | 在线播放不卡 | 夜夜春夜夜爽久久 | 劲爆欧美色欧美 | 欧美在线成人免费国产 | 国产精品原创 | 国产免费高清视频 | 青青热久久久久综合精品 | 久久久性视频 | 两性色午夜视频免费老司机 | 日本综合 | 七次郎在线成人精品 | 欧美成人交tv免费观看 | 中文字幕伊人 | 国产一级免费视频 | 国产999在线 | 国产精品在线播放 | 欧美精品亚洲一区二区在线播放 | 伊人色在线 | 国产精品国产亚洲精品不卡 | 午夜欧美性视频在线播放 | 婷婷国产在线 | 色女人久久 | 欧美综合天天夜夜久久 | 精品一区二区免费视频 | 天天爽夜夜爽精品视频一 | 九九这里有精品 | 亚洲国产一级a毛片 | 女性一级全黄生活片在线播放 | 亚洲欧美成人网 | 免费观看日本高清a毛片 | 久草热久草在线 | 久揄揄鲁一二三四区高清在线 |