get last sunday date as output from a given date (not current date) as input
Example input: 08-30-2017 (%m-%d-%Y)
output should be last sunday: 08-27-2017
If you deal with a fixed date format %m-%d-%Y, it should be transformed to %Y-%m-%d format to be processed by date function:
d='08-30-2017'
d=${d##*-}-${d%-*}
lst_sunday=$(date -d "$d -$(date -d $d +%u) days" +"%m-%d-%Y")
echo $lst_sunday
08-27-2017
+%u - interpreted format specificator, day of week (1..7); 1 is Monday