#!/bin/sh # Shows the date for "fri week" or "mon last" for e.g. # License: LGPLv2 proc Usage { echo "Usage: $[basename $0] mon|tue|... [next]|week|last" > !2 exit 1 } test "$Argc" -eq "0" && Usage setglobal day = $1 setglobal which = $2 test -z $which && setglobal which = 'next' match $which { with week if test $[date +%D] = $[date --date="next $day" +%D] { setglobal weeks = '+2' #assume we want the next week, not today } else { setglobal weeks = '+1' } with last setglobal weeks = '-1' with next if test $[date +%D] = $[date --date="next $day" +%D] { setglobal weeks = '+1' #assume we want the next week, not today } else { setglobal weeks = '+0' } with * Usage } date --date="$day $weeks weeks" +%x