On May 7, 2008, at 8:40 AM, Russell McGaha wrote: > Do any of you know of a script callable from BASH, that will / can > say if today (or a given date) is the first business day of the month? Here's my shot: #!/usr/bin/env bash # # "The shebang line in this reworking of the script probably looks a little different than those # you're used to seeing. The env command invokes the environment for bash, much as /usr/bin/bash # would. However, this syntax avoids problems if the path to bash on your system is not /bin/bash." # - http://open.itworld.com/5040/nlsunix070313/page_1.html # # firstworkday: # # Exit with true (0) if today is the first work day (Mon-Fri) of the month, # otherwise exit with false (1). # # The first work day falls within the first three days of the month and if it's any day other # than Monday it must be the first day of the month: # # 1st 2nd 3rd # # Sat Sun Mon # Sun Mon ... # M-F ... # # So first check if today's date is not 1-3, if so then exit with false (1). Otherwise: # # If today is Monday then it must be the Month's first work day. # If today is Tuesday-Friday and it's the 1st then today is the month's first work day. # # NOTE! This script does not take into account Holidays! firstWorkDay=1 # Assume today is not the month's first work day. dayOfWeek=$(date +%u) monthDay=$(date +%d) if [[ ${monthDay} -le 3 ]]; then case ${dayOfWeek} in [1]) firstWorkDay=0;; [2-5]) [[ ${monthDay} -eq 1 ]] && firstWorkDay=0;; esac fi exit ${firstWorkDay}