傳入一個統一編號的字串, 回傳字串訊息, 如 TextBox1.Text = chkNum("86343722");
//驗證統一編號
public string chkNum(string No)
{
int[] cx = new int[8];
cx[0] = 1;
cx[1] = 2;
cx[2] = 1;
cx[3] = 2;
cx[4] = 1;
cx[5] = 2;
cx[6] = 4;
cx[7] = 1;
if (No.Length != 8)
return "統編長度錯誤,要有 8 個數字";
int[] cnum = new int[8];
cnum[0] = int.Parse(No.Substring(0, 1));
cnum[1] = int.Parse(No.Substring(1, 1));
cnum[2] = int.Parse(No.Substring(2, 1));
cnum[3] = int.Parse(No.Substring(3, 1));
cnum[4] = int.Parse(No.Substring(4, 1));
cnum[5] = int.Parse(No.Substring(5, 1));
cnum[6] = int.Parse(No.Substring(6, 1));
cnum[7] = int.Parse(No.Substring(7, 1));
int SUM = 0;
for (int i = 0; i <= 7; i++)
{
SUM += cc(cnum[i] * cx[i]);
}
if (SUM % 10 == 0)
return "統一編號正確";
else if (cnum[6] == 7 && (SUM + 1) % 10 == 0)
return "統一編號正確";
else
return "統一編號:" + No + " 錯誤!";
}
public int cc(int n)
{
if (n > 9)
{
string n1 = n.ToString().Substring(0, 1);
string n2 = n.ToString().Substring(1, 1);
n = int.Parse(n1) + int.Parse(n2);
return n;
}
return n;
}
沒有留言:
張貼留言