random_date() #@ Return random date in given range of years
{ #@ USAGE: random_date FIRST LAST [VAR]
#@ Global variables set: random_date [VAR]
local year month day dim first=${1:-1752} last=${2:-2100} var=$3
year=$(( RANDOM % (last-first) + first ))
month=$(( RANDOM % 12 + 1 ))
days_in_month dim "$month" "$year"
day=$(( RANDOM % dim + 1 ))
printf -v random_date "%d-%02d-%02d" "$year" "$month" "$day"
is_var "$var" &&
printf -v "$var" %s "$random_date" ||
printf "%s\n" "$random_date"
}