Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace kodune_okt_9_1
- {
- class Program
- {
- static void Main(string[] args)
- {
- /*
- Eestis kasutatav isikukood koosneb üheteistkümnest numbrist.
- Tutvu isikukoodi struktuuriga (https://et.wikipedia.org/wiki/Isikukood) ja kirjuta programm,
- mis analüüsib isikukoode ja väljastab võimalikult rohkem infot selle kohta (sünnikuupäev, sugu jne).
- */
- Console.WriteLine("Ülesanne 9.1 - Isikukood\n");
- tagasi:
- Console.Write("Sisesta isikukood:");
- string isikukood = Console.ReadLine();
- //string isikukood = "60201302715";
- //string isikukood = "48008082727";
- //string isikukood = "39512180830";
- //string isikukood = "31212230156";
- Console.WriteLine();
- char[] IDArray = isikukood.ToArray();
- int[] IntIDArray = Array.ConvertAll(IDArray, c => (int)Char.GetNumericValue(c)); // Kasutaja poolt sisestatava info tegemine numbriliseks väärtuseks
- int[] knkaal1 = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1 };
- int[] knkaal2 = new int[10] { 3, 4, 5, 6, 7, 8, 9, 1, 2, 3 };
- double[] arraykordajad = new double[10];
- // Meetod 11 - I kaalu kontrollnumbri arvutus
- for (int i = 0; i <= 9; i++)
- {
- arraykordajad[i] = IntIDArray[i] * knkaal1[i];
- }
- double arraykordajadSum = arraykordajad.Sum();
- double kaal1 = arraykordajadSum - (Math.Floor(arraykordajadSum / 11) * 11); // https://www.geeksforgeeks.org/c-math-floor-method/
- // Meetod 11 - II kaalu kontrollnumbri arvutus
- double kaal2 = kaal1;
- if (kaal1 >= 10)
- {
- for (int i = 0; i <= 9; i++)
- {
- arraykordajad[i] = IntIDArray[i] * knkaal2[i];
- }
- arraykordajadSum = arraykordajad.Sum();
- double kaal2_arvutus = arraykordajadSum - (Math.Floor(arraykordajadSum / 11) * 11);
- if (kaal1 == 10)
- {
- kaal2 = kaal2_arvutus;
- }
- else
- {
- kaal2 = kaal1;
- }
- }
- if (IntIDArray[10] != kaal2) // lisa ka tingimus, kui isikukood on suurem/väiksem 10 kohalisesta arvust...
- {
- Console.WriteLine("See isikukood on vale!");
- goto tagasi;
- }
- // Isikukoodi lõhkumine andmeteks
- // Soo otsimine
- if (IntIDArray[0] == 1 || IntIDArray[0] == 3 || IntIDArray[0] == 5 || IntIDArray[0] == 7)
- {
- Console.WriteLine("Sugu: mees");
- }
- else if (IntIDArray[0] == 2 || IntIDArray[0] == 4 || IntIDArray[0] == 6 || IntIDArray[0] == 8)
- {
- Console.WriteLine("Sugu: naine");
- }
- // Sünnikuupäeva otsimine
- int saj = 0;
- if(IntIDArray[0] == 1 || IntIDArray[0] == 2)
- {
- saj = 18;
- }
- else if (IntIDArray[0] == 3 || IntIDArray[0] == 4)
- {
- saj = 19;
- }
- else if (IntIDArray[0] == 5 || IntIDArray[0] == 6)
- {
- saj = 20;
- }
- else if (IntIDArray[0] == 7 || IntIDArray[0] == 8)
- {
- saj = 21;
- }
- string day = "" + IDArray[5] + IDArray[6];
- string month = "" + IDArray[3] + IDArray[4];
- string year = "" + saj + IDArray[1] + IDArray[2];
- int Day = Convert.ToInt32(day);
- int Month = Convert.ToInt32(month);
- int Year = Convert.ToInt32(year);
- string synnikp = "" + Day + "/" + Month + "/" + saj + Year;
- //Console.WriteLine("Sünnikuupäev: " + synnikp);
- Console.WriteLine("Sünnikuupäev: " + day + "/" + month + "/" + year);
- // Vanuse kuvamine tänase kuupäevaga
- DateTime algus = new DateTime(Year, Month, Day);
- int vanus = new DateTime(DateTime.Now.Subtract(algus).Ticks).Year - 1;
- Console.WriteLine("Vanus: " + vanus);
- // Sünnihaigla otsimine
- string synnihaigla = "" + IDArray[7] + IDArray[8] + IDArray[9];
- int synnihaiglanum = Int32.Parse(synnihaigla);
- if (synnihaiglanum >= 1 && synnihaiglanum <= 10)
- {
- Console.WriteLine("Sünnihaigla: Kuressaare Haigla");
- }
- else if (synnihaiglanum >= 11 && synnihaiglanum <= 19)
- {
- Console.WriteLine("Sünnihaigla: Tartu Ülikooli Naistekliinik, Tartumaa, Tartu");
- }
- else if (synnihaiglanum >= 21 && synnihaiglanum <= 220)
- {
- Console.WriteLine("Sünnihaigla: Ida-Tallinna Keskhaigla, Pelgulinna sünnitusmaja, Hiiumaa, Keila, Rapla haigla, Loksa haigla");
- }
- else if (synnihaiglanum >= 221 && synnihaiglanum <= 270)
- {
- Console.WriteLine("Sünnihaigla: Ida-Viru Keskhaigla (Kohtla-Järve, endine Jõhvi)");
- }
- else if (synnihaiglanum >= 271 && synnihaiglanum <= 370)
- {
- Console.WriteLine("Sünnihaigla: Maarjamõisa Kliinikum (Tartu), Jõgeva Haigla");
- }
- else if (synnihaiglanum >= 371 && synnihaiglanum <= 420)
- {
- Console.WriteLine("Sünnihaigla: Narva Haigla");
- }
- else if (synnihaiglanum >= 421 && synnihaiglanum <= 470)
- {
- Console.WriteLine("Sünnihaigla: Pärnu Haigla");
- }
- else if (synnihaiglanum >= 471 && synnihaiglanum <= 490)
- {
- Console.WriteLine("Sünnihaigla: Pelgulinna Sünnitusmaja (Tallinn), Haapsalu haigla");
- }
- else if (synnihaiglanum >= 491 && synnihaiglanum <= 520)
- {
- Console.WriteLine("Sünnihaigla: Järvamaa Haigla (Paide)");
- }
- else if (synnihaiglanum >= 521 && synnihaiglanum <= 570)
- {
- Console.WriteLine("Sünnihaigla: Rakvere, Tapa Haigla");
- }
- else if (synnihaiglanum >= 571 && synnihaiglanum <= 600)
- {
- Console.WriteLine("Sünnihaigla: Valga Haigla");
- }
- else if (synnihaiglanum >= 601 && synnihaiglanum <= 650)
- {
- Console.WriteLine("Sünnihaigla: Viljandi Haigla");
- }
- else if (synnihaiglanum >= 651 && synnihaiglanum <= 710)
- {
- Console.WriteLine("Sünnihaigla: Lõuna-Eesti Haigla (Võru), Põlva Haigla");
- }
- // Sünnijärjekorra number
- Console.WriteLine("Sünnijärjekorra number: " + IntIDArray[9]);
- Console.WriteLine("Kontrollnumber " + kaal2);
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement