Cum se poate verifica validitatea unui CNP prin programare folosind o functie?
Răspunsuri la întrebare
Simplu, este un format stabilit de stat și are următoarele restricții:
- Are 13 cifre;
- Prima cifră poate fi una din următoarele:
1 / 2 – bărbat/femeie născut(ă) între 1 ianuarie 1900 si 31 decembrie 1999
3 / 4 – bărbat/femeie născut(ă) între 1 ianuarie 1800 si 31 decembrie 1899
5 / 6 – bărbat/femeie născut(ă) între 1 ianuarie 2000 si 31 decembrie 2099
7 / 8 – pentru persoanele străine rezidente în România.
În plus 9 – pentru alt tip de persoane străine.
- A doua și a treia cifră este un număr format din 2 cifre si reprezintă ultimele 2 cifre din anul nașterii:
Exemplu: Pentru anul 1994, va fi 94, pentru 2004 - 04, ș.a.m.d.
- A patra și a cincea cifră este un număr format din 2 cifre și reprezintă luna nașterii persoanei:
Nu cred că e nevoie de explicație, doar că aici va fi impusă restricția ca a treia cifră să fie mai mică de 1 și a patra cifră mai mică de 9, iar numărul în sine să fie mai mic sau egal cu 12, deoarece avem doar 12 luni.
- A șasea și a șaptea cifră este un număr format din 2 cifre și reprezintă ziua nașterii în format de 2 cifre:
Nici aici nu cred că e nevoie de explicație, voi spune doar de restricția că data trebuie fie validă pentru luna indicată anterior, adică pentru luna decembrie numărul maxim va fi 31, pentru luna aprilie - 30 și tot așa.
Totodată dacă ziua de naștere este formată doar dintr-o cifră, se va scrie cu 0 în față, de exemplu dacă persoana e născută pe 1 ianuarie, se va scrie 01 în cnp.
- A opta și a noua cifră este un numar format din două cifre și este reprezentat de codul județului sau sectorului în care s-a născut persoana ori în care avea domiciliul sau resedința în momentul acordării C.N.P.:
De exemplu, pentru Buzău acest numar este 10. Pentru București, codul este un număr din intervalul 41 si 46 și reprezintă sectorul în care s-a născut acea persoana.
Codurile județelor sunt în ordinea alfabetică a acestora, cu unele excepții (Giurgiu si Călărași).
- A zecea, unsprezecea și a douăsprezecea cifră este un număr format din trei cifre din intervalul 001 – 999:
Numerele din acest interval se împart pe judeţe, birourilor de Evidenţă a Populaţiei, astfel încât un anumit număr din acel interval să fie alocat unei singure persoane într-o anumită zi. Deci restricția e ca numărul să nu fie 000.
- A treisprezecea cifră este cifra de control și este legată de celelalte 12 cifre anterior ei:
Cifra de control este calculată după cum urmează: fiecare cifră din C.N.P. este înmulțită cu cifra de pe aceeași poziție din numărul 279146358279; rezultatele sunt însumate, iar rezultatul final este împărțit cu rest la 11. Dacă restul este 10, atunci cifra de control este 1, altfel cifra de control este egală cu restul .
Spre exemplu: 197121040555=(1*2)+(9*7)+(7*9)+(1*1)+(2*4)+(1*6)+(0*3)+(4*5)+(0*8)+(5*2)+(5*7)+(5*9)=253
253/11=23 rest 0, deci restul fiind 0, ultima cifră a CNP-ului va fi 0.
Acum ce e legat de programare e simplu, citești CNP-ul, și verifici prin condiții toate aceste cifre, pas cu pas.