星期四, 8月 11, 2011

統一編號驗證程式

/// 

/// 檢查統一編號是否正確
/// 回傳值:0:正確 1:字串長度不符 2:輸入的字串不能轉成數字 3:驗證錯誤
///
/// "BusiNo">要檢查的統一編號號碼
public int CheckBusiNo(string BusiNo)
{
int vResult = 0, vStrLength = 0, vTempNum = 0, vTotalNum = 0;
int[] vBaseNum = new int[8] { 1, 2, 1, 2, 1, 2, 4, 1 };
vStrLength = BusiNo.Length;
if (vStrLength != 8)
{
vResult = 1; //輸入的字串長度不是8碼
}
else
{
if (CheckIsNumber(BusiNo))
{
for (int i = 0; i < 8; i++)
{
vTempNum = Convert.ToInt32(BusiNo.Substring(i, 1)) * vBaseNum[i];
vTotalNum += ((vTempNum / 10) + (vTempNum % 10));
}
if (vTotalNum % 10 == 0 || (vTotalNum % 10 == 9 && Convert.ToInt32(BusiNo.Substring(6, 1)) == 7))
{
vResult = 0;
}
else
{
vResult = 3;
}
}
else
{
vResult = 2; //統一編號必須是全數字,不可以有文字
}
}
return vResult;
} //End CheckBusiNo

沒有留言: