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
===
All of the below commands use current day as reference .But i want to give the reference date as input to get last sunday. Please help me with the command.
date +%m-%d-%Y -d "2017-09-10 -7 days"
date +%m-%d-%Y -d "last Sun"
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.
I hope this below solution can help you:
This will always print the Sunday before the given date (or the date itself).
This will always print the Sunday before the given date (and never the date itself).
If you deal with a fixed date format
%m-%d-%Y
, it should be transformed to%Y-%m-%d
format to be processed bydate
function:+%u
- interpreted format specificator, day of week (1..7); 1 is Monday