#!/usr/bin/env bash today=$(date +%Y-%m-%d) min_age=18 max_age=80 current_year=$(date +%Y) min_year=$(( current_year - max_age )) # oldest allowed year max_year=$(( current_year - min_age )) # youngest allowed year year=$(( RANDOM % (max_year - min_year + 1) + min_year )) month=$(( RANDOM % 12 + 1 )) # Figure out how many days in that month/year days_in_month=$(cal "$month" "$year" | awk 'NF {d=$NF} END {print d}') day=$(( RANDOM % days_in_month + 1 )) # Print random birthdate printf "%04d-%02d-%02d\n" "$year" "$month" "$day" [link] [comments]