tjänare!
tänkte kika in ett program som hanterar personnummer..
Det läser in ett personnummer på formen ÅÅMMDD-XXXX, och skapar ett klassobjekt för detta.
I klassen skall det finnas en metod för att kontrollera om personnumret är giltigt, dvs rätt form på årtal, månad, dag, samt att personnumret är giltigt, alltså med multiplicering av siffrorna med omvartannat 2 och 1, samt talsumman skall vara jämnt delbar med 10.. metod för att returnera könet med hjälp av kontrollsiffran (näst sista X'et) skall även finnas.. Någon som sett liknande program eller har en liten bra idé på hur jag plockar ut siffrorna ich behandlar dem enligt 2*siffra, 1*siffra[1] omvartannat, samt viktigast av allt, när jag multiplicerat fram värdena, beräknar talsumman.. dvs om jag får tal som 16,12,10,8,3,2... blir det 1+6+1+2+1+0+8+3+2..
Dvs kortfattat:
· Kontrollera om ett personnummer är korrekt eller ej.
· Ta reda på om personen är man eller kvinna. (Den näst sista siffran i personnumret är udda för män och jämn för kvinnor).
· Returnera personens födelsedag som ett datum på formen ååmmdd.
· Givet ett datum, returnera personens ålder.
Felaktiga personnummer karakteriseras av:
· Ett icke existerande datum.
· Ej 10 siffror.
· Felaktigt kontrolltal.
Koden jag har totat ihop så här långt är följande:
Personnummer.java
import extra.*;
public class Personnummer{
// Instansvariabler
//private int ar,manad,dag;
private String pnr;
private long temp2;
// Konstruktor
public Personnummer(String jaha){
pnr = jaha;
}
// Metoder
/*
public boolean korrektPersonnummer(){
//long hejsan = temp2;
//kontroll som ger true om personnumret stämmer
//hur nu all kontroll ska komma att se ut *funderar*
}
*/
public long returneraPersonnummer(){
return temp2;
}
public long konverteraPersonnummer(String checkpnr){
String temp = "";
String find = "-";
String replace = "";
temp = checkpnr.replaceAll(find, replace);
temp2 = Long.parseLong(temp);
return temp2;
}
}
Personnummertest.java
import extra.*;
public class Personnummertest{
public static void main (String[] arg) {
String foo;
long a;
Std.out.print("Ange ett personnummer på formen ÅÅMMDD-XXXX: ");
foo = Std.in.readWord();
Personnummer p1 = new Personnummer(foo);
Std.out.print("Personnumret på formen ÅÅMMDDXXXX: ");
a = p1.konverteraPersonnummer(foo);
Std.out.println(a);
} // main
} // class
Feel free att ändra och pilla i denna kod så mkt som helst, glad för alla tips och idéer. och gärna något kodexempel, eller givande adresser till liknande program i java..
tack på förhand.
/joph