Jokaisella suomalaisella on yksilöllinen henkilötunnus, joka on muotoa PPKKVVCNNNX, jossa PP on päivä kaksinumeroisena, KK on kuukausi kaksinumeroisena, VV on vuosi kaksinumeroisena, C on vuosisatatunnus, joko + (1800), - (1900) tai A (2000), NNN on yksilönumero ja X on tarkistusmerkki.
Erehdysten välttämiseksi tunnuksissa on viimeisenä tarkistusmerkki, joka lasketaan muodostamalla päivistä, kuukausista, vuosista ja yksilönumeroista yksi suuri luku ja ottamalla sen jakojäännös. Jokaiselle jakojäännökselle on oma merkki, ja jos tämä merkki täsmää tunnuksen tarkistusmerkin kanssa, tunnus on oikein.
Yksi nopeimmista ja lyhimmistä tavoista henkilötunnuksen tarkistamiseen QBasicilla on tässä. Ohjelman toimivuutta voit kokeilla vaikka omalla henkilötunnuksellasi.
merkit$ = "0123456789ABCDEFHJKLMNPRSTUVWXY" INPUT "Anna henkilötunnus: ", tunnus$ IF MID$(merkit$, VAL(LEFT$(tunnus$, 6) + MID$(tunnus$, 8, 3)) MOD 31 + 1, 1) = RIGHT$(tunnus$, 1) THEN PRINT "Tunnus oikein" ELSE PRINT "Tunnus väärin" END IF
sotusta onnistuu myös selvittää henkilön sukupuoli... eli takas koodaan siitä :)
ja sit vielä teet että ilmoittaa iän jne.
Nyt on toinen vinkki henkilötunnuksen analysoinnista.
Epäonnen luku indeksinä, aiheuttaaks ton käyttö epäonnee? ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.