public class HetuTarkistus extends java.lang.Object implements Tarkistaja
Modifier and Type | Field and Description |
---|---|
static int[] |
KUUKAUDET
Kuukausien maksimipituudet
|
static java.lang.String |
TARKISTUSMERKIT
Hetuun kelpaavat tarkistusmerkit järjestyksessä
|
Constructor and Description |
---|
HetuTarkistus() |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
arvoHetu()
Arvotaan satunnainen henkilötunnus, joka täyttää hetun ehdot
|
static char |
hetunTarkistusMerkki(java.lang.String hetu)
Palauttaa mikä olisi hetun tarkistumerkki.
|
static int |
rand(int ala,
int yla)
Arvotaan satunnainen kokonaisluku välille [ala,yla]
|
java.lang.String |
tarkista(java.lang.String hetu)
Tarkistetaan hetu.
|
public static final java.lang.String TARKISTUSMERKIT
public static int[] KUUKAUDET
public HetuTarkistus()
public java.lang.String tarkista(java.lang.String hetu)
tarkista
in interface Tarkistaja
hetu
- joka tutkitaan.#PACKAGEIMPORT HetuTarkistus hetut = new HetuTarkistus(); hetut.tarkista("12121") === "Hetu liian lyhyt"; hetut.tarkista("k") === "Hetu liian lyhyt"; hetut.tarkista("12121k") === "Alkuosassa saa olla vain numeroita"; hetut.tarkista("121212") === null; // sallitaan pelkkä syntymäaika hetut.tarkista("001212") === "Liian pieni päivämäärä"; hetut.tarkista("321212") === "Liian suuri päivämäärä"; hetut.tarkista("300212") === "Liian suuri päivämäärä"; hetut.tarkista("310412") === "Liian suuri päivämäärä"; hetut.tarkista("121312") === "Liian suuri kuukausi"; hetut.tarkista("120012") === "Liian pieni kuukausi"; hetut.tarkista("121212B222Q") === "Väärä erotinmerkki"; hetut.tarkista("121212-2k2Q") === "Yksilöosassa kirjaimia"; hetut.tarkista("121212-2") === "Yksilöosa liian lyhyt"; hetut.tarkista("1212121") === "Väärä erotinmerkki"; hetut.tarkista("12121212") === "Väärä erotinmerkki"; hetut.tarkista("121212-") === "Yksilöosa liian lyhyt"; hetut.tarkista("121212-12345")=== "Hetu liian pitkä"; hetut.tarkista("121212-222S") === "Tarkistusmerkin kuuluisi olla N"; hetut.tarkista("121212-222N") === null; hetut.tarkista("121212-231Y") === null; hetut.tarkista("311212-2317") === null;
public static char hetunTarkistusMerkki(java.lang.String hetu)
hetu
- tutkittava hetuhetunTarkistusMerkki("121212-222") === 'N'; hetunTarkistusMerkki("121212-222S") === 'N'; hetunTarkistusMerkki("121212-222N") === 'N'; hetunTarkistusMerkki("121212-231Y") === 'Y'; hetunTarkistusMerkki("311212-2317") === '7'; hetunTarkistusMerkki("311212-2317XY") === '7'; // vaikka on liikaa merkkejä hetunTarkistusMerkki("999999-9999XY") === 'F'; // vaikka on pvm väärin hetunTarkistusMerkki("12121A-222S") === 'N'; #THROWS NumberFormatException hetunTarkistusMerkki("12121A-22") === 'N'; #THROWS StringIndexOutOfBoundsException hetunTarkistusMerkki("121") === 'N'; #THROWS StringIndexOutOfBoundsException
public static int rand(int ala, int yla)
ala
- arvonnan alarajayla
- arvonnan ylärajapublic static java.lang.String arvoHetu()