Date functions: date_vars


date_vars() #@ Populate variables with today's date
{           #@ USAGE: date_vars [VAR ...]
            #@ Global variables set: date_vars[] ...
  local datefmt='%Y~%m~%d~%H~%M~%S~%FT%T~%F~%j~%w~%b~%B~%a~%A'
  local bashversion=${BASH_VERSINFO[0]}${BASH_VERSINFO[1]}
  if (( bashversion >= 43 ))
  then
    printf -v _date "%($datefmt)T"
  elif (( bashversion >= 42 ))
  then
    printf -v _date "%($datefmt)T" -1
  else
    _date=$(date +"$datefmt")
  fi
  
  IFS=\~ read ${1:-year} \
              ${2:-month} \
              ${3:-day} \
              ${4:-hour} \
              ${5:-minute} \
              ${6:-second} \
              ${7:-datestamp} \
              ${8:-date} \
              ${9:-DayOfYear} \
              ${10:-DayNum} \
              ${11:-MonthAbbrev} \
              ${12:-MonthName} \
              ${13:-DayAbbrev} \
              ${14:-DayName} <<< "$_date"
  enum DVyear DVmonth DVday DVhour DVminute DVsecond DVdatestamp DVdate \
       DVjday DVdaynum DVshortmonth DVmonthname DVshortday DVdayname
  IFS=\~ read -a date_vars <<< "$_date"
  ((debug)) && vshow date_vars
}