Beispiel #1
0
        public override char CalculateCheckDigit()
        {
            byte[] isbnDigits = ValueWithoutHyphens.Select(c => byte.Parse(c.ToString())).ToArray();
            int    m = 1, result = 0;

            for (int i = 0; i < 13; i++)
            {
                result += isbnDigits[i] * (2 * (m++ % 2) + 1);
            }
            int checkDigit = (10 - result % 10) % 10;

            return(Convert.ToChar(checkDigit));
        }
Beispiel #2
0
        public override char CalculateCheckDigit()
        {
            byte[] isbnDigits = ValueWithoutHyphens.Select(c => byte.Parse(c.ToString())).ToArray();
            int    m = 10, result = 0;

            for (int i = 0; i < 10; i++)
            {
                result += isbnDigits[i] * m--;
            }
            int checkDigit = 11 - (result % 11);

            if (checkDigit == 11)
            {
                return('0');
            }
            if (checkDigit == 10)
            {
                return('X');
            }
            return(Convert.ToChar(checkDigit));
        }