Personnummer is a ruby class that handles Swedish personal identity number.
$ gem install personnummer
>> p = Personnummer.new('830428-5912')
#>>Personnummer:0x007fc971369100 @valid=true, @control_digit=2, @divider="-", @serial=591, @born=#>>PersonnummerDate:0x007fc971368318 @divider="-", @day=28, @month=4, @year=1983> #<, @region="Skaraborgs län", @female=false> #<
>> p.valid?
=> true
>> p = Personnummer.new('830428')
=> ArgumentError: The supplied personnummer is invalid
Information about co-ordination numbers (in swedish)
These numbers are obtained by adding 60 to the day of the birth date
>> p = Personnummer.new('830488-5912')
=> #<Personnummer:0x007fbafd1458d8 ...>
>> p.born
=> #<Date: 1983-04-28 ((2445453j,0s,0n),+0s,2299161j)>
>> p.co_ordination_number?
=> true
>> p1 = Personnummer.new(8304285912)
=> #<Personnummer:0x007fb8fd816588 @valid=true, @control_digit=2, @divider="-", @serial=591, @born=#<Personnummer::Born:0x007fb8fd80fa80 @divider="-", @day=28, @month=4, @year=1983>, @region="Skaraborgs län", @female=false>
>> p1 == 8304285912
=> true
p1 == '8304285912'
=> true
"Reservnummer" is used in some special cases. There are only recommendations how it should be formatted, no formalized standard.
You can read more about it on wikipedia.