Brian har ret, men CPR-beregninger er lidt mere komplicerede end som så, da man ved et cpr-nummer såsom 241299-xxxx netop kan være i tvivl om der er tale om juleaftensdag 1899, eller juleaftensdag 1999. Heldigvis så kan det beregnes, men der skal lidt arbejde til.
Det link Brian gav udregner det 10. (sidste) ciffer (kontrolcifferet), men det er vist ikke helt det du er ude efter.
Til det du beskriver, skal du kigge på det syvende ciffer og sammenholde det med årstallet i CPR-nummeret:
Er det syvende ciffer 0 til 3, så er der tale om en fra 1900-tallet.
Er det syvende ciffer 4 eller 9, og er årstallet 36 eller derunder, så er der tale om en fra 2000-tallet. Er årstallet over 36, så er der tale om en fra 1900-tallet.
Er det syvende ciffer 5 til 8, og er årstallet 57 eller derunder, så er der tale om en fra 2000-tallet. Er årstallet over 57, så er der tale om en fra 1800-tallet.
Indviklet, men det kan lade sig gøre. På den danske Wikipedia kan du se en tabel, der måske gør det lidt mere overskueligt, end jeg kan gøre det på tekst. Der kan du også se hvorfor det skiller ved 37 og 57 (årsintervallerne er nemlig henholdsvis 2000-2036 / 1937-1999 og 2000-2057 / 1858-1899 etc.).
Det 10. (sidste) ciffer i CPR-nummeret er et kontrolciffer, der kan bruges til at kontrollere at CPR-nummeret er gyldigt (selvom der er en smule usikkerhed i det. Nogle få ugyldige numre kan slippe igennem, men det er en anden snak, som du også kan læse lidt om i de følgende links).
Jeg smider lige en bunke links, som du kan more dig med:
http://da.wikipedia.org/wiki/CPR-nummer Nyttig information om CPR-nummeret, og hvordan der beregnes forskellige ting.
http://kronsell.net/cpralder.htm Noget kode der beregner århundred-tallet ud fra et CPR-nummer. Godt nok I Visual Basic, men det burde være til at gennemskue.
https://cpr.dk/cpr-systemet/opbygning-af-cpr-nummeret/ CPRs egen forklaring af CPR-nummerets opbygning.
Tjek dog også det link Brian gav. Lur lidt i JS-koden. Så kan du beregne kontrolcifre, hvis du vil.
Det skal lige nævnes at CPR selv siger at ens kode også skal kunne godtage CPR-numre, der ikke består modulus 11 testen, men ikke hvordan det så skal tjekkes. Indtil videre er der dog kun 18 tildelte numre der ikke består testen, ifølge det link til cpr.dk jeg gav dig.