/**

* Berechnet die Double-Add-Double-Prüfziffer der Zeichenkette src (Länge = 11) 
* bzw. prüft deren Gültigkeit (Länge = 12, Ergebnis 0 wenn die Prüfziffer korrekt ist, 
* ansonsten undefiniert).
*/

/* 00 */ public static int dad(String src) { /* 01 */ int s = 0; /* 02 */ int a = (src.length() == 12)? 1 : 2; /* 03 */ for(int i = src.length() - 1; i >= 0; i--) { /* 04 */ int c = src.charAt(i); /* 05 */ if(c > '9') { /* 06 */ // Es ist ein Buchstabe /* 07 */ c -= ('A' - 10); /* 08 */ s += (3-a)*(c/10) + a*c + (a-1)*(c%10)/5; /* 09 */ } /* 10 */ else { /* 11 */ // Es ist eine Ziffer /* 12 */ c -= '0'; /* 13 */ s += a*c + (a-1)*(c/5); /* 14 */ a = 3 - a; /* 15 */ } /* 16 */ } /* 17 */ s %= 10; /* 18 */ return (10 - s%10) % 10; /* 19 */ }