From b15b17be03c8ad04db33e9333d8bec6c4e5dae6a Mon Sep 17 00:00:00 2001 From: Piotr Szefler Date: Wed, 27 Oct 2021 18:39:03 +0200 Subject: [PATCH] =?UTF-8?q?Klasa=20waliduj=C4=85ca=20poprawno=C5=9B=C4=87?= =?UTF-8?q?=20PESELu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PeselValid.java | 285 ++++++++++++++++++++++++------------------------ 1 file changed, 142 insertions(+), 143 deletions(-) diff --git a/PeselValid.java b/PeselValid.java index 874aa31..a488d3c 100644 --- a/PeselValid.java +++ b/PeselValid.java @@ -1,143 +1,142 @@ -package wmiproject; - -public class PeselValid { - - private byte PESEL[] = new byte[11]; - private boolean valid = false; - - public PeselValid(String PESELNumber) { - if (PESELNumber.length() != 11){ - valid = false; - } - else { - for (int i = 0; i < 11; i++){ - PESEL[i] = Byte.parseByte(PESELNumber.substring(i, i+1)); - } - if (checkSum() && checkMonth() && checkDay()) { - valid = true; - } - else { - valid = false; - } - } - } - - public int getBirthYear() { - int year; - int month; - year = 10 * PESEL[0]; - year += PESEL[1]; - month = 10 * PESEL[2]; - month += PESEL[3]; - if (month > 80 && month < 93) { - year += 1800; - } - else if (month > 0 && month < 13) { - year += 1900; - } - else if (month > 20 && month < 33) { - year += 2000; - } - else if (month > 40 && month < 53) { - year += 2100; - } - else if (month > 60 && month < 73) { - year += 2200; - } - return year; - } - - public int getBirthMonth() { - int month; - month = 10 * PESEL[2]; - month += PESEL[3]; - if (month > 80 && month < 93) { - month -= 80; - } - else if (month > 20 && month < 33) { - month -= 20; - } - else if (month > 40 && month < 53) { - month -= 40; - } - else if (month > 60 && month < 73) { - month -= 60; - } - return month; - } - - - public int getBirthDay() { - int day; - day = 10 * PESEL[4]; - day += PESEL[5]; - return day; - } - - private boolean checkSum() { - int sum = 1 * PESEL[0] + - 3 * PESEL[1] + - 7 * PESEL[2] + - 9 * PESEL[3] + - 1 * PESEL[4] + - 3 * PESEL[5] + - 7 * PESEL[6] + - 9 * PESEL[7] + - 1 * PESEL[8] + - 3 * PESEL[9]; - sum %= 10; - sum = 10 - sum; - sum %= 10; - - if (sum == PESEL[10]) { - return true; - } - else { - return false; - } - } - - private boolean checkMonth() { - int month = getBirthMonth(); - if (month > 0 && month < 13) { - return true; - } - else { - return false; - } - } - - private boolean checkDay() { - int year = getBirthYear(); - int month = getBirthMonth(); - int day = getBirthDay(); - if ((day >0 && day < 32) && - (month == 1 || month == 3 || month == 5 || - month == 7 || month == 8 || month == 10 || - month == 12)) { - return true; - } - else if ((day >0 && day < 31) && - (month == 4 || month == 6 || month == 9 || - month == 11)) { - return true; - } - else if ((day >0 && day < 30 && leapYear(year)) || - (day >0 && day < 29 && !leapYear(year))) { - return true; - } - else { - return false; - } - } - - private boolean leapYear(int year) { - if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) - return true; - else - return false; - } - public boolean isValid() { - return valid; - } -} +package wmiproject; + +public class PeselValid { + + private byte PESEL[] = new byte[11]; + private boolean valid = false; + + public PeselValid(String PESELNumber) { + if (PESELNumber.length() != 11){ + valid = false; + } + else { + for (int i = 0; i < 11; i++){ + PESEL[i] = Byte.parseByte(PESELNumber.substring(i, i+1)); + } + if (checkSum() && checkMonth() && checkDay()) { + valid = true; + } + else { + valid = false; + } + } + } + + public int getBirthYear() { + int year; + int month; + year = 10 * PESEL[0]; + year += PESEL[1]; + month = 10 * PESEL[2]; + month += PESEL[3]; + if (month > 80 && month < 93) { + year += 1800; + } + else if (month > 0 && month < 13) { + year += 1900; + } + else if (month > 20 && month < 33) { + year += 2000; + } + else if (month > 40 && month < 53) { + year += 2100; + } + else if (month > 60 && month < 73) { + year += 2200; + } + return year; + } + + public int getBirthMonth() { + int month; + month = 10 * PESEL[2]; + month += PESEL[3]; + if (month > 80 && month < 93) { + month -= 80; + } + else if (month > 20 && month < 33) { + month -= 20; + } + else if (month > 40 && month < 53) { + month -= 40; + } + else if (month > 60 && month < 73) { + month -= 60; + } + return month; + } + + public int getBirthDay() { + int day; + day = 10 * PESEL[4]; + day += PESEL[5]; + return day; + } + + private boolean checkSum() { + int sum = 1 * PESEL[0] + + 3 * PESEL[1] + + 7 * PESEL[2] + + 9 * PESEL[3] + + 1 * PESEL[4] + + 3 * PESEL[5] + + 7 * PESEL[6] + + 9 * PESEL[7] + + 1 * PESEL[8] + + 3 * PESEL[9]; + sum %= 10; + sum = 10 - sum; + sum %= 10; + + if (sum == PESEL[10]) { + return true; + } + else { + return false; + } + } + + private boolean checkMonth() { + int month = getBirthMonth(); + if (month > 0 && month < 13) { + return true; + } + else { + return false; + } + } + + private boolean checkDay() { + int year = getBirthYear(); + int month = getBirthMonth(); + int day = getBirthDay(); + if ((day >0 && day < 32) && + (month == 1 || month == 3 || month == 5 || + month == 7 || month == 8 || month == 10 || + month == 12)) { + return true; + } + else if ((day >0 && day < 31) && + (month == 4 || month == 6 || month == 9 || + month == 11)) { + return true; + } + else if ((day >0 && day < 30 && leapYear(year)) || + (day >0 && day < 29 && !leapYear(year))) { + return true; + } + else { + return false; + } + } + + private boolean leapYear(int year) { + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) + return true; + else + return false; + } + public boolean isValid() { + return valid; + } +}