Pfyber

EMŠO

Jan 22nd, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.89 KB | None | 0 0
  1. using System;
  2.  
  3. public class Program
  4. {
  5.     public static void Main()
  6.     {
  7.         String emso = "1211981500136";
  8.         //tabela da razbijemo EMŠO na posamezne cifre
  9.         int[] cifre = new int[13];
  10.         //tabela količnikov za izračun kontrolne številke
  11.         int[] kontrolneCifre = {7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2};
  12.         //EMŠO razbijemo na posamezne cifre in zapišemo v tabelo cifre
  13.         for (int i = 0; i < emso.Length; i++)
  14.         {
  15.             cifre[i] = Int32.Parse(emso.Substring(i, 1));
  16.         }
  17.  
  18.         //preberemo določene cifre za izračun dnevov, let in mesecev
  19.         int danRojstva = Int32.Parse(emso.Substring(0, 2));
  20.         int mesecRojstva = Int32.Parse(emso.Substring(2, 2));
  21.         int letoRojstva;
  22.         //za izračun leta preberemo od 5 do 8 cifre.. prištejemo 1000
  23.         //preverimo če je manješe od 1800, če je, prištejemo 1000
  24.         int letoTemp = Int32.Parse(emso.Substring(4, 3)) + 1000;
  25.  
  26.         if (letoTemp < 1800)
  27.             letoRojstva = letoTemp + 1000;
  28.         else
  29.             letoRojstva = letoTemp;
  30.  
  31.         int drzavljanstvoCifra = Int32.Parse(emso.Substring(7, 2));
  32.         String drzavljanstvo;
  33.  
  34.         if (drzavljanstvoCifra == 50)
  35.             drzavljanstvo = "Slovensko";
  36.         else
  37.             drzavljanstvo = "Ne slovensko";
  38.         String spol;
  39.         //pri zaporedni preverimo če je večje od 500, če je je to ženska
  40.         //za zaporedno številko odštejemo 500, pri moškem pač nič
  41.         int zaporednaStevilkaRojstva;
  42.         int tempSpol = Int32.Parse(emso.Substring(9, 3));
  43.         if (tempSpol > 500)
  44.         {
  45.             spol = "Ženska";
  46.             zaporednaStevilkaRojstva = tempSpol - 500;
  47.         }
  48.         else
  49.         {
  50.             spol = "Moški";
  51.             zaporednaStevilkaRojstva = tempSpol;
  52.         }
  53.  
  54.         int kontrolna = Int32.Parse(emso.Substring(12, 1));
  55.         int skupaj = 0;
  56.         //pri kontrolni zmnožimo vsako cifro z vsako kontrolno cifro iz tabele
  57.         //na ISTEM indeksu!
  58.         for (int i = 0; i < emso.Length - 1; i++)
  59.         {
  60.             skupaj += cifre[i] * kontrolneCifre[i];
  61.         }
  62.  
  63.         int tempKont = 11 - skupaj % 11;
  64.         Console.WriteLine(tempKont);
  65.     }
  66. }
Add Comment
Please, Sign In to add comment