# Sisendiks on EV kodaniku isikukood # Programm peab leidma ja väljastama kodaniku sünnipäeva, vanuse, soo # ja kontrollima isikukoodi õigsust lähtudes selle kontrollsummast # Sisend: ik - string # Väljund: sünnikuupäev, vanus, sugu, märge ik õigsuse kohta import time # Kuupäeva funktsiooni kasutamiseks # Algväärtustame kuude enniku, pärast saab seda kuupäeva trükkimiseks kasutada kuud = ("jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember") # Need ennikud on kontrollsumma jaoks kordaja1 = (1,2,3,4,5,6,7,8,9,1) kordaja2 = (3,4,5,6,7,8,9,1,2,3) print ("Selle programmi abil saad eraldada infot EV kodaniku isikukoodist.") ik = input("Sisesta isikukood ") # Esimese sümboli järgi tuvastame soo if ik[0] in ("1","3","5"): print ("Sisestatud isikukood peaks kuuluma mehele.") elif ik[0] in ("2","4","6"): print ("Sisestatud isikukood peaks kuuluma naisele.") # Nüüd paneme kokku sünniaasta, arvestades sh sajandit if ik[0] == "1" or ik[0] == "2": synniaasta = 1800 elif ik[0] == "3" or ik[0] == "4": synniaasta = 1900 elif ik[0] == "5" or ik[0] == "6": synniaasta = 2000 abi = int(ik[1:3]) synniaasta = synniaasta + abi # Ja edasi väljastame kuupäeva synnikuu = int(ik[3:5]) synnip2ev = int(ik[5:7]) print ("Sünnipäevaks on: ",synnip2ev,".", kuud[synnikuu-1],synniaasta) aeg = time.localtime() aasta = aeg.tm_year kuu = aeg.tm_mon p2ev = aeg.tm_mday # vanuse leidmiseks kasutame if-e, sest ajafunktsioonid moodulis time väga # häid võimalusi ei anna. print ("Täna on ", p2ev, kuu, aasta) vanus = aasta - synniaasta if kuu < synnikuu: vanus -=1 elif kuu == synnikuu and p2ev < synnip2ev: vanus -=1 elif kuu == synnikuu and p2ev == synnip2ev: print ("Palju õnne sünnipäevaks!") print ("Vanus on",vanus) # Nüüd asume kontrollsummat uurima summa = 0 for i in range(10): # Tsükli abil võetakse järjest koodis ja kordajates olevad väärtused summa = summa + kordaja1[i] * int(ik[i]) j22k = summa % 11 print("1. kordajad annavad kontrollnumbri",j22k) if j22k == 10: # Kasutada tuleb teist kordajate komplekti. summa = 0 for i in range(10): summa = summa + kordaja2[i] * int(ik[i]) j22k = summa % 11 print("2. kordajad annavad kontrollnumbri",j22k) if j22k == 10: j22k = 0 print("Kontrollnumber on lihtsalt 0",j22k) if j22k == int(ik[10]): print ("Kontrollsumma sobib, seega isikukood on õige.") else: print ("Sisestatud isikukoodis on viga, kontrollsumma ei ole sama.")