function GetIDCardNumCheckCode(aIDCardNum: string): Integer;
const
WIArray: Array[0..16] of Integer = (7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
ModCode: array [0..10] of string = ('1','0','X','9','8','7','6','5','4','3','2');
var
I, Sum, ModResult: Integer;
begin
Result := -1;
Sum := 0;
if Length(aIDCardNum) < 17 then
Exit;
for I := 0 to Length(WIArray) - 1 do
begin
Sum := Sum + StrToInt(aIDCardNum[I+1]) * WIArray[I];
end;
ModResult := Sum mod 11;
Result := StrToInt(ModCode[ModResult]);
end;