Skip to content

Koziolek/peselx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

peselx

Elixir parser and validator for PESEL numbers

PESEL number

PESEL is Polish national ID number. It has specific structure:

Birth date Serial Sex Control digit
440514 014 5 8

Birth date

Birth date in number has format yymmdd.

  • for years 1800-1899 add 8 to month e.g. january is 81
  • for years 1900-1999 month has 'standard' number e.g. january is 01
  • for years 2000-2099 add 2 to month e.g. january is 21
  • for years 2100-2199 add 6 to month e.g. january is 61

Sex

Even for girls odd for boys. Easy :)

Control digit

To calculate control digit we need:

  • calculate sum of numbers from position 1 to 10 (date, serial, sex) with weights.
  • calculate modulo 10
  • substract result from 10.

If result is 0 OR 10 if modulo gives 0 then PESEL is valid.

Weigths

Weights for calculating CD:

A B C D E F G H I J
1 3 7 9 1 3 7 9 1 3

Usage

iex> Peselx.validate("04231115629")
{:ok, "Valid"}

Change in branching model

To remember. Rules of branching:

  • master – branch is production.
  • release-* – code where we developing next release.
  • feature-* – optional branch for feature that is developer „on side”

Use merge --no-ff to close branch.

Varia

MASTER – Build Status – MASTER

release-0.2.0 – Build Status – 0.2.0

release-0.3.0 – Build Status – 0.3.0

About

Elixir parser and validator for PESEL numbers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages