der aufbau:
IDCHE1234123457<<<<<<<<<<<<<<<
0109110M1001015CHE<<<<<<<<<<<2
MAX<<MUSTERMANN<<<<<<<<<<<<<<<
zeile 1:
blau = Authoritätsnummer (4-stellig)
lila = Weiterführende Nummer (5-stellig)
rot = prüfziffer von blau und lila
zeile 2:
grau = geburtsdatum
rot = prüfziffer geburtsdatum
M = geschlecht männlich ( sonst F für weiblich )
orange = gültigkeitsdatum ( YYMMDD )
rot = prüffziffer gültigkeitsdatum
und die letzte rote prüfziffer ist die gesammte prüfziffer von allen zahlen
zeile 3:
der name, alle zeilen haben 30 zeichen die leerzeichen werden mit < aufgefüllt.
berechnung der prüfziffer:
von links nach rechts mit der ersten stelle beginnend werden die stellen sich wiederholend mit 7, 3, 1 gewichtet. die jeweiligen Produkte aus beiden zahlen werden errechnet. die endziffern der produkte werden summiert.
die prüfsumme ist die endziffer der summe.
ein beispiel anhand des obigen geburtsdatums: 010911
also der 11 September 2001
0 * 7 = 0
1 * 3 = 3
0 * 1 = 1
9 * 7 = 63
1 * 3 = 3
1 * 1 = 1
jetzt rechnet man 0+3+0+3+3+1 = 10 die endziffer ist die prüfziffer also
0
eine php funktion um die ziffer zu errechnen :
CODE
function getPziffer($x) {
$xar = array (7,3,1,7,3,1,7,3,1,7,3,1,7,3,1,7,3,1,7,3,1,7,3,1);
for ($i=0;$i<strlen($x);$i++) {
$u = $x{$i}; # i.te zeichen von x
$e = $u * $xar[$i]; # zahl = i.te zeichen von x mal 7,3 oder 1
$p = $p + ( substr ( $e , strlen($e) - 1, 1 ) ); # sum = sum + letzte ziffer von e
}
# die letzte ziffer von gesamt p wird noch berechnet
$p = substr ($p , strlen($p)-1, 1 );
return $p;
}
echo getPziffer('010911');
ausgabe: 0
eingegeben wurde das datum von oben.
quelle:
http://adi.kousz.ch/sites/artikel/IDch.txt