days_this_month() {
  year="${1}"
  month="${2}"
  pid=$$
  [ "${year}" -gt 0 -a "${month}" -gt 0 ] || ( echo "days_this_month wants year and month" >&2; kill -KILL ${pid})

  february=28
  [ "$(( ${year} % 4 ))" -eq 0 ] && [ "$(( ${year} % 100 ))" -gt 0 -o "$(( ${year} % 400 ))" -eq 0 ] && february=29

  case "${month##0}" in
  1|3|5|7|8|10|12)  echo 31 ;;
  4|6|9|11)         echo 30 ;;
  2)                echo "${february}" ;;
  *)                echo "Invalid month ${month}" >&2; kill -KILL ${pid} ;;
  esac
}