#!/bin/bash
# Controleer of er een rijksregisternummer is opgegeven
if [ -z "$1" ]; then
echo "Geen rijksregisternummer opgegeven."
exit 1
fi
# RRN
rrn="$1"
# RRN met enkel cijfers aan elkaar
cijfers=$(echo "$rrn" | tr -cd '[:digit:]')
######## 11 cijfers ##########
aantal_cijfers=${#cijfers}
if [ "$aantal_cijfers" == 11 ]; then
true
else
if [ "$aantal_cijfers" == 1 ]; then
>&2 echo "rrn: ongeldig formaat (1 cijfer)"
exit 1
else
>&2 echo "rrn: ongeldig formaat ($aantal_cijfers cijfers)"
exit 1
fi
fi
####### Controlegetal ###########
# 1900
eerste_negen=${cijfers:0:9}
rest1=$(echo "$eerste_negen % 97" | bc)
controlegetal1=$((97 - $rest1))
# 2000
twee_voor_negen="2${cijfers:0:9}"
rest2=$(echo "$twee_voor_negen % 97" | bc)
controlegetal2=$((97 - $rest2))
geennul=$(echo "${cijfers: -2}" | sed "s/^0//")
if [[ "$controlegetal1" == "$geennul" || "$controlegetal2" == "$geennul" ]]; then
true
else
>&2 echo "rrn: ongeldig controlegetal"
exit 2
fi
####### Geslacht ###########
geslacht=$(echo "$cijfers" | cut -c 7-9 | sed "s/^0//")
geslacht=$(echo "$geslacht" | bc)
geslacht_naam=$(if (( $geslacht % 2 == 0 )); then
echo "vrouw"
else
echo "man"
fi)
#### Geboortedatum #####
dag=$(echo "$cijfers" | cut -c 5-6)
dag_zonder_0=$(echo "$cijfers" | cut -c 5-6 | sed 's/0.$//')
maand=$(echo "$cijfers" | cut -c 3-4)
maand_zonder_0=$(echo "$cijfers" | cut -c 3-4 | sed 's/0.$//')
if [[ "${maand_zonder_0}" -gt 12 || "$dag_zonder_0" -gt 31 ]]; then
echo "rrn: ongeldige geboortedatum" >&2
exit 3
fi
jaar=$(echo "$cijfers" | cut -c 1-2)
if [ "$controlegetal1" == "$geennul" ]; then
jaar_volledig=$(echo "19$jaar")
elif [ "$controlegetal2" == "$geennul" ]; then
jaar_volledig=$(echo "20$jaar")
fi
geboortedatum=$(echo "$dag/$maand/$jaar_volledig")
### Aangepast RRN ###
nieuw_rrn=$(echo "$cijfers" | sed 's/\(.\{2\}\)\(.\{2\}\)\(.\{2\}\)\(.\{3\}\)\(.\{2\}\)/\1.\2.\3-\4.\5/')
######### eind #######
echo "rijksregisternummer: $nieuw_rrn"
echo "geslacht: $geslacht_naam"
echo "geboortedatum: $geboortedatum"
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}