2014年3月12日水曜日

C#でモジュラス11の計算

  1. /// <summary>  
  2. /// モジュラス11 計算  
  3. /// NW-7  
  4. /// </summary>  
  5. /// <param name="Value">/// <returns></returns>  
  6. public static string GetModulus11(string Value)  
  7. {  
  8.     bool result = Regex.IsMatch(Value, @"^[0-9]+$");  
  9.     if (!result || 6 > Value.Length)  
  10.     {  
  11.         return null;  
  12.     }  
  13.   
  14.     string val = Value.Substring(0, 6);  
  15.   
  16.     int checkDigit = 0;  
  17.     for (int i = 0; i < val.Length; i++)  
  18.     {  
  19.         checkDigit += int.Parse(val.Substring(i, 1)) * (7 - i);  
  20.     }  
  21.     checkDigit = checkDigit % 11;  
  22.   
  23.     if (checkDigit == 0)  
  24.     {  
  25.         return "1";  
  26.     }  
  27.     else if (checkDigit == 1)  
  28.     {  
  29.         return "0";  
  30.     }  
  31.     else  
  32.     {  
  33.         return (11 - checkDigit).ToString();  
  34.     }  
  35. }  

0 件のコメント:

コメントを投稿