Pesel - obliczenia

Użytkowanie programu bazodanowego
Piotrekbil
Posty: 1
Rejestracja: sob gru 27, 2014 9:11 pm

Pesel - obliczenia

Post autor: Piotrekbil »

Witam.
Stworzyłem tabelę w których jednym z pól jest nr pesel.
Chciałbym, żeby w kwerendzie wykonane były obliczenia z nim związane, czyli:

Z nr pesel wyciągnięcie daty urodzenia
data dzisiejsza - data urodzenia = wiek
przedostatnia liczba nr pesel określa płeć osoby= Kobieta Mężczyzna
Idealnym przydałem dla mnie jest wątek https://forum.openoffice.org/pl/forum/v ... esel#p9955 niestety dotyczący programu Calc.



Pozdrawiam
Piotr
LibreOffice Wersja: 4.3.5.2
Jan_J
Posty: 4626
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Pesel - obliczenia

Post autor: Jan_J »

wartość PESEL winna być tekstem z kontrolą poprawności -- bo forma, a nie wartość, jest istotna.

W arkuszu kalkulacyjnym do pobierania elemetów daty użyj funkcji MID (Fragment.tekstu), do zamiany na liczbę: funkcji VALUE (WARTOŚĆ); do składania roku, niesiąca i dnia w datę: funkcji DATE (DATA); do obliczania wieku w dniach -- różnicy dat, a w latach: różnicy "roków" urodzenia z warunkową modyfikacją o 1 w niektórych sytuacjach. Oczywiście cyfrę kontrolną odpowiedzialną za płeć też wydłubiesz MID-em.

W bazie SQL-owej będą potrzebne analogiczne funkcje SQL. Niestety, jeśli jest to baza wbudowana tj. HSQL 1.8.x, to operacje na datach są w niej mocno okrojone. W przypadku prawdziwej bazy spełniającej SQL-owe standardy, rzecz się prawie-że przenosi: potrzebujesz pobierania fragmentu tekstu (SUBSTR), konwersji str->DATE (date(tekst) i odejmowania dat.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Astur
Posty: 654
Rejestracja: wt lip 13, 2010 9:11 am

Re: Pesel - obliczenia

Post autor: Astur »

Jan_J pisze:wartość PESEL winna być tekstem z kontrolą poprawności -- bo forma, a nie wartość, jest istotna.
Metoda kontroli numeru PESEL sprowadza się do obliczenia wyrażenia
a+3b+7c+9d+e+3f+7g+9h+i+3j+k
(gdzie litery oznaczają kolejne cyfry numeru), a następnie sprawdzenia czy reszta z dzielenia przez 10 jest zerem. Jeśli ostatnia cyfra otrzymanej liczby jest zerem, to numer PESEL jest poprawny, w przeciwnym razie numer jest błędny.
Na podstawie Wikipedii
Ubuntu 20.04 — OpenOffice 4.1.10
Zanim zastosujesz się do jakiejś rady, zrób kopię zapasową dokumentu, którego ona ma dotyczyć.
Wskazówka: w dokumentach używam czasem niestandardowych, bezpłatnych czcionek Gentium i Lato
Jan_J
Posty: 4626
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Pesel - obliczenia

Post autor: Jan_J »

OK, miałem na myśli pożądaną niepodatność wartości PESEL na ustawianie formatu liczbowego użytkownika, jak początkowe zero, miejsca dziesiętne albo data. Tekst jest bezpieczniejszy. Także w przypadku SQL, choć tu pola do niezamierzonych nieporozumień jest mniej.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ