// 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 :)