#region === 사업자등록번호에 대한 알고리즘 ===
/// <summary>
/// /// 사업자 번호에 대한 Check
/// -- 사업자등록번호 체크 알고리즘
/// 예: 118-01-48428
/// 체크방법:
/// (1) 사업자등록번호 각각의 수에 다음과 같은 수를 곱하여 더한다.
/// 1 1 8 - 0 1 - 4 8 4 2 8 <- 체크섬
/// * 1 3 7 1 3 7 1 3 5
/// -------------------------------
/// (1*1)+(1*3)+(8*7)+(0*1)+(1*3)+(4*7)+(8*1)+(4*3)+( 절삭((2*5)/10) + 나머지((2*5),10) )
/// = 112
/// (2) 계산한 값을 10로 나눈 나머지 = 2
/// (3) 10 에서 (2)를 뺀 수가 사업자등록번호의 마지막 자리의 수와 같아야 됨
/// 10 - 2 = 8 ==> ok !
/// </summary>
/// <param name="strCustID"></param>
/// <returns></returns>
public bool ShowCheckCustomerNo(string strCustID)
{
try
{
string strCheckID = "137137135";
string CustID = strCustID.Replace("-", "").Trim();
Decimal iLast = Convert.ToDecimal(CustID.Substring(9, 1));
Decimal ret = 0;
Decimal ick = 0;
Decimal iCust = 0;
/// <summary>
/// /// 사업자 번호에 대한 Check
/// -- 사업자등록번호 체크 알고리즘
/// 예: 118-01-48428
/// 체크방법:
/// (1) 사업자등록번호 각각의 수에 다음과 같은 수를 곱하여 더한다.
/// 1 1 8 - 0 1 - 4 8 4 2 8 <- 체크섬
/// * 1 3 7 1 3 7 1 3 5
/// -------------------------------
/// (1*1)+(1*3)+(8*7)+(0*1)+(1*3)+(4*7)+(8*1)+(4*3)+( 절삭((2*5)/10) + 나머지((2*5),10) )
/// = 112
/// (2) 계산한 값을 10로 나눈 나머지 = 2
/// (3) 10 에서 (2)를 뺀 수가 사업자등록번호의 마지막 자리의 수와 같아야 됨
/// 10 - 2 = 8 ==> ok !
/// </summary>
/// <param name="strCustID"></param>
/// <returns></returns>
public bool ShowCheckCustomerNo(string strCustID)
{
try
{
string strCheckID = "137137135";
string CustID = strCustID.Replace("-", "").Trim();
Decimal iLast = Convert.ToDecimal(CustID.Substring(9, 1));
Decimal ret = 0;
Decimal ick = 0;
Decimal iCust = 0;
for (int i = 0; i < 9; i++)
{
ick = Convert.ToInt32(strCheckID.Substring(i, 1));
iCust = Convert.ToInt32(CustID.Substring(i, 1));
if (i < 8)
{
ret = ret + (ick * iCust);
}
else if (i == 8)
{
ret = ret + Decimal.Truncate((ick * iCust) / 10) + Decimal.Remainder((ick * iCust), 10);
}
}
ret = Decimal.Remainder(ret, 10);
if (ret == 0) ret = 0;
else ret = 10 - ret;
if (ret == iLast)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
#endregion
[출처] 사업자번호 체크 알고리즘|작성자 이카루스
728x90
반응형
'General' 카테고리의 다른 글
ConnectionString 만들기 (0) | 2009.11.26 |
---|---|
한글날 기념 폰트 및 무료제공 폰트들 (0) | 2009.06.10 |
나눔고딕 코딩용 글꼴 (0) | 2009.03.27 |
Internet Explorer 8 정식 출시 (0) | 2009.03.20 |
cmd 모드에서 registry 등록 (0) | 2009.03.18 |