Pojdi na vsebino

Enotna matična številka občana

Iz Wikipedije, proste enciklopedije

Enotna matična številka občana (kratica EMŠO) je osebna identifikacijska številka v Republiki Sloveniji. EMŠO določi upravljavec centralnega registra prebivalstva (CRP) enotno za vse prebivalce Republike Slovenije, vključno s tujimi državljani. EMŠO je bil uveden leta 1976 v SFRJ in je še danes v uporabi v državah na območju bivše Jugoslavije vključno s Slovenijo. Hrvaška je ne uporablja od 1. 1. 2009 temveč zaradi pravice do zasebnosti uporablja negovoreči Osobni identifikacijski broj, ki ne vsebuje rojstnih podatkov.

EMŠO se vpisuje v osebne izkaznice, potne liste in druge javne listine.

Sestav EMŠO

[uredi | uredi kodo]

EMŠO sestavlja trinajst števk (DDMMLLLRRZZZK), ki imajo naslednji pomen:

  • od 1. do 7. števke: DDMMLLL - datum rojstva (dve mesti za dan, dve mesti za mesec in tri mesta za zadnje tri števke letnice rojstva)
  • 8. in 9. števka: RR - številka registra[1]:
  • 10., 11. in 12. števka: ZZZ - zaporedna številka oziroma kombinacija spola in zaporedne številke za osebe, rojene istega dne (000-499 za moške in 500-999 za ženske)
  • 13. števka: K - kontrolna števka, izračunana po modulu 11 (glej spodaj).

Če je EMŠO določena na napačen datum rojstva ali spol, jo upravljavec centralnega registra razveljavi in ponovno določi, razveljavljena EMŠO pa ostane v evidenci. Ob spremembah drugih osebnih podatkov oseba obdrži dodeljeno EMŠO. Razveljavljene EMŠO se ne sme dodeliti drugemu posamezniku.

Izračun kontrolne vsote

[uredi | uredi kodo]

Postopek:

  • prva številka EMŠO se pomnoži s 7
  • druga številka EMŠO se pomnoži s 6
  • tretja številka EMŠO se pomnoži s 5
  • četrta številka EMŠO se pomnoži s 4
  • peta številka EMŠO se pomnoži s 3
  • šesta številka EMŠO se pomnoži z 2
  • sedma številka EMŠO se pomnoži s 7
  • osma številka EMŠO se pomnoži s 6
  • deveta številka EMŠO se pomnoži s 5
  • deseta številka EMŠO se pomnoži s 4
  • enajsta številka EMŠO se pomnoži s 3
  • dvanajsta številka EMŠO se pomnoži z 2.

Dobljeni zmnožki iz prvega odstavka se seštejejo. Seštevek se deli z enajst (delitev se omeji na celo število). Ostanek pri deljenju se odšteje od števila 11, razlika je kontrolna številka. Kontrolna številka je enomestna, ima lahko vrednost od 0 do 9. Če je ostanek pri deljenju 0, je kontrolna številka 0.

Kadar upravljavec CRP emšo določa in je ostanek pri deljenju enak 1, je razlika dvomestna in kontrolne številke ni mogoče izračunati. V takem primeru zaporedno število preskoči, vrednost zaporedne številke poveča za 1, izračun kontrolne številke pa ponovi po istem postopku. [2]

Excelova formula za preverjanje EMŠO

[uredi | uredi kodo]

Če so v celici A1 podatki (prvih 12 števk EMŠO), lahko izračunamo kontrolno vsoto (zadnja števka) po formuli:

= IF(11-MOD((7*(MID(A1;1;1)+MID(A1;7;1)) + 6*(MID(A1;2;1)+MID(A1;8;1)) + 5*(MID(A1;3;1)+MID(A1;9;1)) + 4*(MID(A1;4;1)+MID(A1;10;1)) + 3*(MID(A1;5;1)+MID(A1;11;1)) + 2*(MID(A1;6;1)+MID(A1;12;1)));11) = 11; 0; 11-MOD((7*(MID(A1;1;1)+MID(A1;7;1)) + 6*(MID(A1;2;1)+MID(A1;8;1)) + 5*(MID(A1;3;1)+MID(A1;9;1)) + 4*(MID(A1;4;1)+MID(A1;10;1)) + 3*(MID(A1;5;1)+MID(A1;11;1)) + 2*(MID(A1;6;1)+MID(A1;12;1)));11))

Preverjanje EMŠO v programskem jeziku C#

[uredi | uredi kodo]
private bool emso_verify(string emso) {
    if ((emso == null) | (emso.Length != 13) | (!emso.All(c => char.IsDigit(c))))
        return false;
    
    int emso_sum = 0;
    for (int i = 7; i > 1; i--)
        emso_sum += i * (int.Parse(emso.Substring(7 - i, 1)) + int.Parse(emso.Substring(13 - i, 1)));
    
    int control_digit = emso_sum % 11 == 0 ? 0 : 11 - (emso_sum % 11);

    if (emso.Substring(12, 1) == control_digit.ToString())
        return true;

    return false;
}

Preverjanje EMŠO v programskem jeziku Python

[uredi | uredi kodo]
def emso_verify(emso):
        """
        Accepts an iterable of at least 12 digits and returns the number
        as a 13 digit string with a valid 13th control digit.
        Details about computation in
        http://www.uradni-list.si/1/objava.jsp?urlid=19998&stevilka=345
        """
        emso_factor_map = [7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
        control_digit = sum([int(emso[i]) * emso_factor_map[i] for i in range(12)]) % 11
        control_digit = 0 if control_digit == 0 else 11 - control_digit
        return control_digit == int(emso[12])

Preverjanje EMŠO v programskem jeziku C++

[uredi | uredi kodo]
bool emso_verify(string emso)
{
	if (emso.empty() || emso.size() != 13) // 13 mestno
		return false;

	for (auto& c : emso)
		if (!(c >= '0' && c <= '9')) // samo številke
			return false;

	static int factor_map[] = { 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2 }; // https://www.uradni-list.si/glasilo-uradni-list-rs/vsebina?urlid=19998&stevilka=345
	short control_digit = 0, sum = 0;
	for (int i = 0; i < 12; ++i)
		sum += (int)(emso[i] - '0') * factor_map[i];

	control_digit = sum % 11 == 0 ? 0 : 11 - (sum % 11);// Seštevek se deli z enajst (delitev se omeji na celo število).
														// Ostanek pri delitvi se odšteje od števila 11, razlika je kontrolna številka.Kontrolna številka je enomestna, ima lahko vrednost od 0 do 9.
														// Če je ostanek pri delitvi O je kontrolna številka 0.
	return control_digit == (int)(emso[12] - '0');
}

Primer

[uredi | uredi kodo]

Prvi fantek, rojen v Sloveniji 1. januarja 2006, ima EMŠO 0101006500006.

Sklici

[uredi | uredi kodo]
  1. »Uradni list - Vsebina Uradnega lista«. www.uradni-list.si. Pridobljeno 8. julija 2020.
  2. »Uredba o načinu določanja osebne identifikacijske številke«. Uradni list RS, št. 8/1999. 10. februar 1999.

Zunanje povezave

[uredi | uredi kodo]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy