check algoritm: ICO a rodne cislo

Vaclav Ovsik ovsik na skoda.cz
Úterý Leden 5 12:09:39 CET 1999


On Sat, 2 Jan 1999, Lad'a wrote:

> Ahoj do noveho roku `99.
> 
> Znate tu nekdo algoritmy pro kontrolu validity ICO a rodneho cisla?
> 
> -pro rc je to rc/11 = celociselny vysledek, ale nevim, od jakeho data/roku narozeni toto plati (1960?), protoze u RC z minuleho stoleti to asi nebude fungovat :))
> 
> -pro ICO mi algoritmus neni dosud znam (avsak kupodivu existuje!) a na uradech "nikdo nic nevi, dela to za ne pocitac" :))
> 
> Kontrolu provadi napr. program Vario8 (www.altus.cz) - je to sice v Accessu, lec runtime, autori uz nevi, jaky na to je algorithm (si pry uz nepamatuji..)
> 
> Takze mate-li nekdo tip, podelte se (prip. na mou adresu).
> 
> -vp
> 

rc uz nebudu komentovat (nekdo uz to tu psal)

Nechce se mi zamyslet, ale pred asi pred rokem jsem splodil nasledujici
kodv Perlu podle nejakych materialu, uz nevim kde se vzaly.
Snad je to funkcni.

=====================
sub is_ico_ok {
    my ($ico) = $_[0];
    my ($i, $s);

    return undef unless $ico =~ /^\d{8}$/;
    for( $i=0; $i < 7; $i++ ) {
        $s += substr( $ico, $i, 1 ) * ( 8 - $i );
    }
    return (11 - ($s % 11)) % 10 == substr( $ico, 7, 1 );
}


sub is_ucet_ok {
    my ($ucet) = $_[0];
    my ($s);
    my @koef = qw/ 6 3 7 9 10 5 8 4 2 1 /;

    return undef unless $ucet =~ /^\d{10}$/;
    foreach ( split( undef, $ucet ) ) {
        $s += $_ * shift @koef;
    }
    return $s % 11 == 0;
}

=====================

--
	Vaclav OVSIK			email: ovsik na skoda.cz
	Network Management Center	phone: +420 19 7738560
	Skoda, Pilsen, CZ




Další informace o konferenci Linux