# bash and BSD date, 96 bytes As an alternative to [Toby Speight's answer](https://codegolf.stackexchange.com/a/266286) but using BSD implementation instead of GNU one ```sh s=(1 2) m="-v$2y -v$1 -v+1m -v1d" date $m -v-$((s[`date $m +%w`]+1))d +%A\ %eth|sed s/1th/1st/ ``` It has the following limitations: - months can be integers only, not strings (`October` or `sep` for example) - separator is changed from `/` to blanks which is natural shell arguments separator There's certainly room for tweaking.