Created
September 26, 2022 19:06
-
-
Save scruss/03d3e4deb9b156eeb5fb6753e5febaa0 to your computer and use it in GitHub Desktop.
quakerdate.sh - return today's (or a specified) date in Quaker (Society of Friends) customary date format
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# quakerdate - use GNU date to generate Quaker (Society of Friends) | |
# customary date format. Any args will be passed as the date to print | |
# scruss, 2022-09 | |
# Mon 26 Sep 2022 -> Second day, the twenty-sixth of ninth month 2022 | |
ordinals=(none First Second Third Fourth Fifth Sixth Seventh Eighth \ | |
Ninth Tenth Eleventh Twelfth Thirteenth Fourteenth \ | |
Fifteenth Sixteenth Seventeenth Eighteenth Nineteenth \ | |
Twentieth Twenty-first Twenty-second Twenty-third \ | |
Twenty-fourth Twenty-fifth Twenty-sixth Twenty-seventh \ | |
Twenty-eighth Twenty-ninth Thirtieth Thirty-first) | |
datestr="now" | |
# use any args to specify date other than today | |
if | |
[ $# -ge 0 ] | |
then | |
datestr="$*" | |
fi | |
# read values with leading zeroes removed | |
read -r dow dom mon year < <(date --date="$datestr" +"%w %d %m %Y" |\ | |
sed 's/ 0/ /g;') | |
# date %w returns 0-6 and we want 1-7. Also lowercase later ordinals | |
echo "${ordinals[$((dow + 1))]}" "day, the" "${ordinals[$dom],}" "of" \ | |
"${ordinals[$mon],}" "month" "$year" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment