01.
// wykorzystujemy klasę Scanner z pakietu java.util
02.
import
java.util.*;
03.
04.
/**
05.
* Sprawdzenie sumy kontrolnej w numerze PESEL
06.
* @author kodatnik.blogspot.com
07.
*/
08.
public
class
Pesel {
09.
10.
// metoda sprawdza poprawność numeru PESEL na podstawie sumy kontrolnej
11.
// zwraca true dla poprawnych i false dla niepoprawnych numerów
12.
public
static
boolean
sprawdz(String pesel){
13.
// zakładamy tablicę z wagami
14.
int
[] wagi = {
1
,
3
,
7
,
9
,
1
,
3
,
7
,
9
,
1
,
3
};
15.
16.
// sprawdzamy długość PESEL'a, jeśli nie jest to 11 zwracamy false
17.
if
(pesel.length() !=
11
)
return
false
;
18.
19.
// zakładamy zmienną będącą sumą kontrolną
20.
int
suma =
0
;
21.
22.
// liczymy w pętli sumę kontrolną przemnażając odpowiednie
23.
// cyfry z PESEL'a przez odpowiednie wagi
24.
for
(
int
i =
0
; i <
10
; i++)
25.
suma += Integer.parseInt(pesel.substring(i, i+
1
)) * wagi[i];
26.
27.
// pobieramy do zmiennej cyfraKontrolna wartość ostatniej cyfry z PESEL'a
28.
int
cyfraKontrolna = Integer.parseInt(pesel.substring(
10
,
11
));
29.
30.
// obliczamy cyfrę kontrolną z sumy (najpierw modulo 10 potem odejmujemy 10 i jeszcze raz modulo 10)
31.
suma %=
10
;
32.
suma =
10
- suma;
33.
suma %=
10
;
34.
35.
// zwracamy wartość logiczną porównania obliczonej i pobranej cyfry kontrolnej
36.
return
(suma == cyfraKontrolna);
37.
38.
}
39.
40.
public
static
void
main(String[] args){
41.
42.
Scanner sc =
new
Scanner(System.in);
43.
System.out.print (
"Podaj numer PESEL: "
);
44.
45.
// pobieramy od użytkownika PESEL
46.
String pesel = sc.nextLine();
47.
48.
// wyświetlamy na ekranie informacje o poprawności sumy kontrolnej PESEL
49.
System.out.println(
"Twój PESEL jest "
+ ((sprawdz(pesel)) ?
"poprawny."
:
"niepoprawny"
));
50.
51.
}
52.
}
Podaj numer PESEL: 85032208451 Twój PESEL jest poprawny.Powyższy algorytm nie sprawdza numeru PESEL pod względem nieprawidłowych danych (niewłaściwe numery miesięcy, dni). Zauważ PESEL: 66666666666 jest traktowany jako poprawny!
Dla określenia różnych lat (wieków) urodzenia dodaje się do numeru miesiąca następujące wartości: lata 1800-1899 - 80, lata 1900-1999 - 0, lata 2000-2099 - 20 itd.
5 Komentarzy - Sprawdzamy poprawność numeru PESEL
Całkiem spoko rzecz.Pozdro.Michał Paryjczak
bardzo mi sie przydalo :-)
auto_joker
Ciesze się, że mogłem pomóc :)
Polecam do testowania:
http://generatory.it/
moj pesel jest ok
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)