Users can use the arrow keys to move the date on the calendar and press enter to select the date.
#!/bin/bash DONE=0 DATE=$(date +%F) YEAR="$(echo $DATE | cut -b1-4)" MONTH="$(echo $DATE | cut -b6-7)" DAY="$(echo $DATE | cut -b9-10 | sed -e 's/^0/ /')" while [ $DONE -eq 0 ]; do clear cal -h ${MONTH} ${YEAR} | GREP_COLOR='47;30' grep "$DAY" -wC6 --color=always read -rsn1 KEY [[ $KEY == $'\x1b' ]] && { read -rsn1 -t 0.1 DC read -rsn1 -t 0.1 KP case $KP in "A") DATE=$(date +%F -d "$DATE 7 day ago");; "B") DATE=$(date +%F -d "$DATE 7 day");; "C") DATE=$(date +%F -d "$DATE 1 day");; "D") DATE=$(date +%F -d "$DATE 1 day ago");; esac } || { DONE=1 } YEAR="$(echo $DATE | cut -b1-4)" MONTH="$(echo $DATE | cut -b6-7)" DAY="$(echo $DATE | cut -b9-10 | sed -e 's/^0/ /')" done echo $DATE # To change the output format use the date command like these examples do # date +%d/%m/%Y -d "$DATE" # date -d "$DATE"
I found out today that older Linux systems have cal that does not support the -h to strip the highlighting. No worries, just remove the -h and it works fine. The pipe to grep strips the formatting and you are good to go.
ReplyDelete