// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;
/**
* Sprawdzenie sumy kontrolnej w numerze PESEL
* @author kodatnik.blogspot.com
*/
public class Pesel {
// metoda sprawdza poprawność numeru PESEL na podstawie sumy kontrolnej
// zwraca true dla poprawnych i false dla niepoprawnych numerów
public static boolean sprawdz(String pesel){
// zakładamy tablicę z wagami
int[] wagi = {1, 3, 7, 9, 1, 3, 7 ,9 ,1 ,3};
// sprawdzamy długość PESEL'a, jeśli nie jest to 11 zwracamy false
if (pesel.length() != 11) return false;
// zakładamy zmienną będącą sumą kontrolną
int suma = 0;
// liczymy w pętli sumę kontrolną przemnażając odpowiednie
// cyfry z PESEL'a przez odpowiednie wagi
for (int i = 0; i < 10; i++)
suma += Integer.parseInt(pesel.substring(i, i+1)) * wagi[i];
// pobieramy do zmiennej cyfraKontrolna wartość ostatniej cyfry z PESEL'a
int cyfraKontrolna = Integer.parseInt(pesel.substring(10, 11));
// obliczamy cyfrę kontrolną z sumy (najpierw modulo 10 potem odejmujemy 10 i jeszcze raz modulo 10)
suma %= 10;
suma = 10 - suma;
suma %= 10;
// zwracamy wartość logiczną porównania obliczonej i pobranej cyfry kontrolnej
return (suma == cyfraKontrolna);
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print ("Podaj numer PESEL: " );
// pobieramy od użytkownika PESEL
String pesel = sc.nextLine();
// wyświetlamy na ekranie informacje o poprawności sumy kontrolnej PESEL
System.out.println("Twój PESEL jest " + ((sprawdz(pesel)) ? "poprawny." : "niepoprawny"));
}
}
Uruchomiona aplikacja:
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 :)