ISDP – Rodné číslo jako datový prvek (2.díl)
Je rodné číslo správné? Je datum obsažený v rodném čísle reálný? Je rodné číslo pravé? Patří rodné číslo konkrétnímu člověku?
Na některé z těchto otázek si dokážeme odpovědět. Pojďme se podívat jak.
Vysvětlení vybraných pravidel pro ověření pravosti rodného čísla
K ověření pravidel platných pro rodné číslo můžeme použít například tabulkový procesor Excel.
Kolik číslic má rodné číslo?
Pro ověření jednoho rodného čísla jistě triviální otázka, ale pro ověření celé řady čísel bude vhodnější použít tabulkový kalkulátor. Možné je využití například funkce DÉLKA.
A | B | ||
1 | 7401040020 | 10 | =DÉLKA(A1) |
Je rodné číslo dělitelné jedenácti?
Vzhledem k tomu, že kontrolní číslice se u rodného čísla přidává až od 1. 1. 1954, lze ověřit dělitelnost jedenácti až u těchto čísel. Tedu u všech desetimístných.
Jako ideální by se v tomto případě jevilo použití modula. Funkce Excelu MOD pro ověření dělitelnosti čísla beze zbytku není v tomto případě vhodné – viz http://support.microsoft.com/kb/119083.
Využití kritéria dělitelnosti
V desítkové číselné soustavě lze dělitelnost ověřit pomocí kritéria dělitelnosti – je-li rozdíl součtu číslic na sudém a lichém místě dělitelný jedenácti, pak je rodné číslo dělitelné jedenácti.
např. pro 7401040020:
(7+0+0+0+2)-(4+1+4+0+0)=9-9=0
Nula je dělitelná jedenácti beze zbytku.
Pomocí funkce Excelu:
A | B | ||
1 | 7401040020 | 0 | =(ČÁST(A1;1;1)+ČÁST(A1;3;1)+ČÁST(A1;5;1)+ČÁST(A1;7;1)+ČÁST(A1;9;1)) (ČÁST(A1;2;1)+ČÁST(A1;4;1)+ČÁST(A1;6;1)+ČÁST(A1;8;1)+ČÁST(A1;10;1)) |
V tomto případě nám mohou u rodného čísla vyjít výsledky -44, -33, -22, -11, 0, 11, 22, 33.
Pro člověka je toto číslo již na první pohled dělitelné jedenácti beze zbytku. Pro ověření v Excelu můžeme na toto číslo bez problému aplikovat funkci MOD. Nabízí se tedy například kombinace kritéria dělitelnosti a funkce MOD.
A | B | C | ||
1 | 7401040020 | 0 | 0 | =MOD(B1;11) |
Číslo 7401040020 je dělitelné jedenácti beze zbytku.
Využití funkce CELÁ ČÁST
Zda je číslo dělitelné jedenácti beze zbytku můžeme ověřit srovnáním výsledku po dělení jedenácti a celočíselného výsledku po dělení jedenácti.
A | B | ||
1 | 7401040020 | PRAVDA | =A1/11=CELÁ.ČÁST(A1/11) |
Číslo 7401040020 je dělitelné jedenácti beze zbytku
Odvození data narození
Jak je již poznamenáno výše, jsou rodná čísla do 1. 1. 1954 devítimístná a od 1. 1. 1954 desetimístná. Rodné číslo je ve formátu rrmmdd/xxx resp. rrmmdd/xxxx, kde rr je ročník narození, mm měsíc a dd den narození.
Odvození roku narození
První dvojčíslí je ročníkem narození. Podle délky rodného čísla poznáme, zda se jedná o rok před či po Y2K.
A | B | ||
1 | 7401040020 | 1974 | =KDYŽ(NEBO(DÉLKA(A1)=9;A(DÉLKA(A1)=10;ČÁST(A1;1;2)*1>=54)); 1900+ČÁST(A1;1;2);2000+ČÁST(A1;1;2)) |
Pozn.:ve vzorci je použito násobení číslem jedna – to slouží k převodu textu (čísla ve formě textu) na hodnotu. Stejně tak by šla použít i funkce HODNOTA.
Konstrukce vzorce:
Jestliže platí, že rodné číslo má devět číslic nebo platí současně, že má deset čísel a první dvě čísla jsou větší nebo rovna číslu 54, pak k prvním dvěma číslům rodného čísla přičti 1900, jinak k prvním dvěma číslům rodného čísla přičti 2000.
Odvození měsíce narození
Druhé dvojčíslí je měsícem narození dané osoby. Ženám se k tomuto číslu přičítá číslo 50 (teoreticky by mohla existovat i rodná čísla, u kterých se přičítá mužům 20 a ženám 70, ale této výjimce se zde věnovat nebudeme – řešení by bylo analogické).
A | B | ||
1 | 7401040020 | 0 | =KDYŽ(ČÁST(A1;3;2)*1>12;ČÁST(A1;3;2)-50;ČÁST(A1;3;2)*1) |
Konstrukce vzorce:
Jestliže je druhé dvojčíslí v rodném čísle větší než 12, pak od tohoto dvojčíslí odečti číslo 50. Druhé dvojčíslí je pak měsícem narození.
Odvození dne narození
Třetí dvojčíslí je dnem narození dané osoby. Není závislé na století ani pohlaví.
A | B | ||
1 | 7401040020 | 4 | =ČÁST(A1;5;2) |
Konstrukce vzorce:
Třetí dvojčíslí v rodném čísle.
Celé datum narození
Složením čísel ze sloupců B, C a D.
A | B | C | D | E | ||
1 | 7401040020 | 1974 | 1 | 4 | 4.1.1974=DATUM(B2;C2;D2) |
Nebo rovnou vše v jednom vzorci.
A | B | ||
1 | 7401040020 | Muž | =KDYŽ(ČÁST(A1;3;2)*1>50;"žena";"muž") |
Konstrukce vzorce:
Jestliže je druhé dvojčíslí v rodném čísle větší než 50, pak se jedná o ženu. Jinak jde o muže.
Ověření prvního dvojčíslí
Prvním dvojčíslím může být jakékoliv číslo 0-99. Ověřujeme tedy pouze zda jde o číslo.
A | B | ||
1 | 7401040020 | PRAVDA | =JE.ČISLO(ČÁST(A1;1;2)*1 |
Konstrukce vzorce:
Je pravda, že první dvojčíslí v rodném čísle převedené na číslo je číslo?
Pokud bychom chtěli ověřit, zda je rodné číslo platné nejen formálně, ale jestli mohlo být někomu přiděleno, pak by bylo vhodné zkoumat, zda je desetimístné pro všechny ročníky od ročníku 54 včetně do aktuálního ročníku. Nebo naopak – zda je dvojčíslí, které je mezi aktuálním ročníkem a ročníkem 53 včetně devítimístné.
Ověření druhého dvojčíslí
Druhé dvojčíslí je číslo měsíce, které je případně zvýšené u žen o 50.
A | B | ||
1 | 7401040020 | PRAVDA | =NEBO(A(ČÁST(A1;3;2)*1>0;ČÁST(A1;3;2)*1<13);A(ČÁST(A1;3;2)*1>50;ČÁST(A1;3;2)*1<63)) |
Konstrukce vzorce:
Je pravda, že druhé dvojčíslí (převedené na číslo), je buď mezi 1-12 nebo 51-62?
Případně bychom mohli ještě zkoumat teoretickou možnost, že bylo některému muži přičteno k měsíci narození číslo 20, resp. některé ženě číslo 70. Řešení by bylo analogické.
Ověření třetího dvojčíslí
Třetí dvojčíslím může být jakékoliv číslo 1-31. V závislosti na měsíci narození jsme poté schopni ověřit, zda počet dní odpovídá danému měsíci. U měsíců leden, březen, květen, červenec, srpen, říjen a prosinec může být třetí dvojčíslí rovno 1-31, pro měsíce duben, červen, září a listopad může být třetí dvojčíslí rovno 1-30 a pro měsíc únor 1-29. Dále by bylo možné zkoumat v závislosti na ročníku narození, zda byl daný rok přestupný. V opačném případě a v kombinaci s měsícem únor by mohlo být třetí dvojčíslí pouze 1-29.
Přestupné roky jsou násobkem 4 počínaje od roku 1900. Tedy 1900, 1904, 1908, 1912,…
Ověřování pomocí funkce by bylo v tomto případě možné, nicméně zbytečně komplikované. Jako vhodnější se nabízí využití kombinace funkcí a malého číselníku.
Pro lepší přehlednost by bylo ještě vhodné si tabulku s maximálními počty dní v daných měsících pojmenovat.
A | B | C | D | E | F | G | H | I | J | K | L | |
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
2 | 31 | 29 | 31 | 30 | 31 | 30 | 31 | 30 | 31 | 30 | 31 | 30 |
Pro buňky A1:L2 je definován název DnyMesice
A | B | ||
1 | 7401040020 | PRAVDA | =KDYŽ(ČÁST(A1;3;2)*1>50;ČÁST(A1;3;2)-50; ČÁST(A1;3;2)*1)<=VVYHLEDAT(ČÁST(A1;3;2)*1;DnyMesice;2) |
Konstrukce vzorce:
Jestliže je třetí dvojčíslí větší než 50, pak odečti 50, jinak vezmi toto číslo a porovnej ho s druhým řádkem tabulky DnyMesice. Je pravda, že toto číslo je mu rovno nebo je menší?
Kombinace ověřování čísel v případě použití přičítání čísla 20 nebo 70 a ověřování, zda v případě, že je den v rodném čísle 29 a současně měsíc únor, jde o přestupný rok, necháme na pilném čtenáři.
Upozornění
Všechna použitá rodná čísla jsou smyšlená. Jakékoliv zneužití rodného čísla či použití falešného rodného čísla při identifikaci je trestný čin ve smyslu zákonů České Republiky. Tento příklad může být použit pouze k pochopení principu fungování rodných čísel. Autor nezodpovídá za pravost vygenerovaných rodných čísel a zříká se jakékoliv odpovědnosti za jejich použití či zneužití.
Další zdroje informací:
http://cs.wikipedia.org/wiki/Rodn%C3%A9_%C4%8D%C3%ADslo
http://lorenc.info/3MA381/overeni-spravnosti-rodneho-cisla.htm
MIČR: Metodický pokyn pro popis datových prvků ISVS
MIČR: Katalog datových prvků ISVS
Rak, R.: Unikátní objektové identifikátory, časopis Kriminalistika 3/1999, MVČR dostupné také na
http://www.mvcr.cz/casopisy/kriminalistika/1999/9903/rak.html
Související právní předpisy:
Zákon č. 89/1995 Sb., o státní službě, ve znění pozdějších předpisů
Zákon č. 301/2000 Sb., o matrikách, jménu a příjmení a změně některých souvisejících zákonů
Zákon č. 133/2000 Sb., o evidenci obyvatel a rodných číslech
Vyhláška č. 296/2004 Sb., kterou se provádí zákon o evidenci obyvatel a kterou se mění vyhláška č. 177/2000 Sb., kterou se provádí zákon o evidenci obyvatel, zákon o občanských průkazech a zákon o cestovních dokladech
Vyhláška č. 469/2006, o informačním systému a datových prvcích
Vyhláška č. 543/2002 Sb., Ministerstva vnitra, kterou se mění vyhláška č. 177/2000 Sb., kterou se provádí zákon o evidenci obyvatel, zákon o občanských průkazech a zákon o cestovních dokladech, ve znění pozdějších předpisů.
Díly seriálu:
ISDP – Rodné číslo jako datový prvek (1.díl)
ISDP – Rodné číslo jako datový prvek (2.díl)
Odpovědět na příspěvek