How can I calculate the date of the Monday of next week? For example, if I have one variable with this day:
DAYCHECK=2012-10-24
the calculation of the next-monday doesn't work:
date -d $DAYCHECK -dnext-monday +%Y%m%d
UPDATE:
I have solved whit this method:
numdaycheck=`date -d $DAYCHECK +%u`
sum=$((8-$numdaycheck))
date=`date -d "$DAYCHECK $sum days" +%Y%m%d`
If GNU date
(or any other date
) accepts some variation of "monday after $DAYCHECK", I haven't seen it. I think you have to do the math.
$ day_of_week=$( date +%u --date $DAYCHECK) # 1 = Monday, ... 7 = Sunday
$ date --date "$DAYCHECK +$((8-day_of_week)) days"
If DAYCHECK
is already a Monday, you'll get the following Monday. If you want DAYCHECK
instead, you'll need to handle it separately:
$ if (( day_of_week == 1 )); then
> date --date "$DAYCHECK"
> else
> date --date "$DAYCHECK +$((8-day_of_week)) days"
> fi
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With