Advertisement
valuson

Untitled

Dec 12th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.66 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace kodune_okt_9_1
  8. {
  9. class Program
  10. {
  11.     static void Main(string[] args)
  12.     {
  13.  
  14.         /*
  15.         Eestis kasutatav isikukood koosneb üheteistkümnest numbrist.
  16.         Tutvu isikukoodi struktuuriga (https://et.wikipedia.org/wiki/Isikukood) ja kirjuta programm,
  17.         mis analüüsib isikukoode ja väljastab võimalikult rohkem infot selle kohta (sünnikuupäev, sugu jne).
  18.         */
  19.  
  20.         Console.WriteLine("Ülesanne 9.1 - Isikukood\n");
  21.  
  22.         tagasi:
  23.  
  24.         Console.Write("Sisesta isikukood:");
  25.         string isikukood = Console.ReadLine();
  26.  
  27.         //string isikukood = "60201302715";
  28.         //string isikukood = "48008082727";
  29.         //string isikukood = "39512180830";
  30.         //string isikukood = "31212230156";
  31.  
  32.  
  33.         Console.WriteLine();
  34.  
  35.         char[] IDArray = isikukood.ToArray();
  36.         int[] IntIDArray = Array.ConvertAll(IDArray, c => (int)Char.GetNumericValue(c)); // Kasutaja poolt sisestatava info tegemine numbriliseks väärtuseks
  37.         int[] knkaal1 = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1 };
  38.         int[] knkaal2 = new int[10] { 3, 4, 5, 6, 7, 8, 9, 1, 2, 3 };
  39.         double[] arraykordajad = new double[10];
  40.  
  41.         // Meetod 11 - I kaalu kontrollnumbri arvutus
  42.  
  43.         for (int i = 0; i <= 9; i++)
  44.         {
  45.             arraykordajad[i] = IntIDArray[i] * knkaal1[i];
  46.         }
  47.  
  48.         double arraykordajadSum = arraykordajad.Sum();
  49.         double kaal1 = arraykordajadSum - (Math.Floor(arraykordajadSum / 11) * 11); // https://www.geeksforgeeks.org/c-math-floor-method/
  50.  
  51.  
  52.         // Meetod 11 - II kaalu kontrollnumbri arvutus
  53.  
  54.         double kaal2 = kaal1;
  55.  
  56.         if (kaal1 >= 10)
  57.         {
  58.             for (int i = 0; i <= 9; i++)
  59.             {
  60.                 arraykordajad[i] = IntIDArray[i] * knkaal2[i];
  61.             }
  62.             arraykordajadSum = arraykordajad.Sum();
  63.  
  64.             double kaal2_arvutus = arraykordajadSum - (Math.Floor(arraykordajadSum / 11) * 11);
  65.  
  66.             if (kaal1 == 10)
  67.             {
  68.                 kaal2 = kaal2_arvutus;
  69.             }
  70.             else
  71.             {
  72.                 kaal2 = kaal1;
  73.             }
  74.  
  75.         }
  76.  
  77.  
  78.  
  79.  
  80.         if (IntIDArray[10] != kaal2) // lisa ka tingimus, kui isikukood on suurem/väiksem 10 kohalisesta arvust...
  81.         {
  82.             Console.WriteLine("See isikukood on vale!");
  83.             goto tagasi;
  84.         }
  85.  
  86.  
  87.         // Isikukoodi lõhkumine andmeteks
  88.         // Soo otsimine
  89.  
  90.         if (IntIDArray[0] == 1 || IntIDArray[0] == 3 || IntIDArray[0] == 5 || IntIDArray[0] == 7)
  91.         {
  92.             Console.WriteLine("Sugu: mees");
  93.         }
  94.  
  95.         else if (IntIDArray[0] == 2 || IntIDArray[0] == 4 || IntIDArray[0] == 6 || IntIDArray[0] == 8)
  96.         {
  97.             Console.WriteLine("Sugu: naine");
  98.         }
  99.  
  100.  
  101.         // Sünnikuupäeva otsimine
  102.  
  103.         int saj = 0;
  104.  
  105.         if(IntIDArray[0] == 1 || IntIDArray[0] == 2)
  106.         {
  107.             saj = 18;
  108.         }
  109.         else if   (IntIDArray[0] == 3 || IntIDArray[0] == 4)
  110.         {
  111.             saj = 19;
  112.         }
  113.         else if (IntIDArray[0] == 5 || IntIDArray[0] == 6)
  114.         {
  115.             saj = 20;
  116.         }
  117.         else if (IntIDArray[0] == 7 || IntIDArray[0] == 8)
  118.         {
  119.             saj = 21;
  120.         }
  121.  
  122.         string day = "" + IDArray[5] + IDArray[6];
  123.         string month = "" + IDArray[3] + IDArray[4];
  124.         string year = "" + saj + IDArray[1] + IDArray[2];
  125.         int Day = Convert.ToInt32(day);
  126.         int Month = Convert.ToInt32(month);
  127.         int Year = Convert.ToInt32(year);
  128.  
  129.  
  130.  
  131.         string synnikp = "" + Day + "/" + Month + "/" + saj + Year;
  132.  
  133.  
  134.  
  135.         //Console.WriteLine("Sünnikuupäev: " + synnikp);
  136.         Console.WriteLine("Sünnikuupäev: " + day + "/" + month + "/" + year);
  137.  
  138.         // Vanuse kuvamine tänase kuupäevaga
  139.  
  140.         DateTime algus = new DateTime(Year, Month, Day);
  141.         int vanus = new DateTime(DateTime.Now.Subtract(algus).Ticks).Year - 1;
  142.         Console.WriteLine("Vanus: " + vanus);
  143.  
  144.  
  145.  
  146.  
  147.         // Sünnihaigla otsimine
  148.  
  149.         string synnihaigla = "" + IDArray[7] + IDArray[8] + IDArray[9];
  150.         int synnihaiglanum = Int32.Parse(synnihaigla);
  151.  
  152.  
  153.         if (synnihaiglanum >= 1 && synnihaiglanum <= 10)
  154.         {
  155.             Console.WriteLine("Sünnihaigla: Kuressaare Haigla");
  156.         }
  157.         else if (synnihaiglanum >= 11 && synnihaiglanum <= 19)
  158.         {
  159.             Console.WriteLine("Sünnihaigla: Tartu Ülikooli Naistekliinik, Tartumaa, Tartu");
  160.         }
  161.         else if (synnihaiglanum >= 21  && synnihaiglanum <= 220)
  162.         {
  163.             Console.WriteLine("Sünnihaigla: Ida-Tallinna Keskhaigla, Pelgulinna sünnitusmaja, Hiiumaa, Keila, Rapla haigla, Loksa haigla");
  164.         }
  165.         else if (synnihaiglanum >= 221 && synnihaiglanum <= 270)
  166.         {
  167.             Console.WriteLine("Sünnihaigla: Ida-Viru Keskhaigla (Kohtla-Järve, endine Jõhvi)");
  168.         }
  169.         else if (synnihaiglanum >= 271 && synnihaiglanum <= 370)
  170.         {
  171.             Console.WriteLine("Sünnihaigla: Maarjamõisa Kliinikum (Tartu), Jõgeva Haigla");
  172.         }
  173.         else if (synnihaiglanum >= 371 && synnihaiglanum <= 420)
  174.         {
  175.             Console.WriteLine("Sünnihaigla: Narva Haigla");
  176.         }
  177.         else if (synnihaiglanum >= 421 && synnihaiglanum <= 470)
  178.         {
  179.             Console.WriteLine("Sünnihaigla: Pärnu Haigla");
  180.         }
  181.         else if (synnihaiglanum >= 471 && synnihaiglanum <= 490)
  182.         {
  183.             Console.WriteLine("Sünnihaigla: Pelgulinna Sünnitusmaja (Tallinn), Haapsalu haigla");
  184.         }
  185.         else if (synnihaiglanum >= 491 && synnihaiglanum <= 520)
  186.         {
  187.             Console.WriteLine("Sünnihaigla: Järvamaa Haigla (Paide)");
  188.         }
  189.         else if (synnihaiglanum >= 521 && synnihaiglanum <= 570)
  190.         {
  191.             Console.WriteLine("Sünnihaigla: Rakvere, Tapa Haigla");
  192.         }
  193.         else if (synnihaiglanum >= 571 && synnihaiglanum <= 600)
  194.         {
  195.             Console.WriteLine("Sünnihaigla: Valga Haigla");
  196.         }
  197.         else if (synnihaiglanum >= 601 && synnihaiglanum <= 650)
  198.         {
  199.             Console.WriteLine("Sünnihaigla: Viljandi Haigla");
  200.         }
  201.         else if (synnihaiglanum >= 651 && synnihaiglanum <= 710)
  202.         {
  203.             Console.WriteLine("Sünnihaigla: Lõuna-Eesti Haigla (Võru), Põlva Haigla");
  204.         }
  205.  
  206.         // Sünnijärjekorra number
  207.  
  208.         Console.WriteLine("Sünnijärjekorra number: " + IntIDArray[9]);
  209.         Console.WriteLine("Kontrollnumber " + kaal2);
  210.  
  211.         Console.ReadKey();
  212.  
  213.  
  214.     }
  215. }
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement