반응형

public static bool CheckCpIdenti(string cpIdenti)
{
            cpIdenti = cpIdenti.Replace("-", "");

            if (cpIdenti.Length != 10)
            {
                return false;
            }

            int sum = 0;
            string checkNo = "137137135";

            // 1. 각각의 자리에 1 3 7 1 3 7 1 3 5 를 곱한 합을 구한다.
            for (int i = 0; i < checkNo.Length; i++)
                sum += (int)Char.GetNumericValue(cpIdenti[i]) * (int)Char.GetNumericValue(checkNo[i]);

 

            // 2. 마지막에서 두번째 숫자에 5를 곱하고 10으로 나누어 나온 몫을 더한다.
            sum += (int)Char.GetNumericValue(cpIdenti[8]) * 5 / 10;

 

            // 3. 매직키인 10로 나누어 나머지만 취한다.
            sum %= 10;

 

            // 4. 매직키인 10에서 나머지를 뺀다. (단 나머지가 0이 아닐경우)
            if(sum != 0)

     sum = 10 - sum;

 

            // 5. 이숫자가 사업자등록번호 마지막 자리의 숫자와 일치하면 정상적인 사업자등록번호이다.
            if (sum != (int)Char.GetNumericValue(cpIdenti[9]))
                return false;
            else
                return true;
}

반응형

+ Recent posts