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
}
