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
Very simple way-
First calculate dayofweek from given date. It will be 1-7. For Monday it's 1 etc ...Saturday 6 and Sunday 7.
Then subtract dayofweek from given date. That's your last Sunday.
$ givenDate="08-30-2017"
$ dayofweek=$(date -j -f '%m-%d-%Y' $givenDate +'%u')
$ date -j -f '%m-%d-%Y' -v-${dayofweek}d $givenDate +%m-%d-%Y
08-27-2017