How to get number of days in a month

cal $(date +"%m %Y") | awk 'NF {DAYS = $NF}; END {print DAYS}'
31

cal $(date +"%m %Y") | awk 'NR==1 {MON_YEAR=$1 " " $2};NF {DAYS = $NF}; END {print MON_YEAR " - " DAYS}'
March 2013 - 31

cal 4 2013 | awk 'NF {DAYS = $NF}; END {print DAYS}'
30

Quickly get number of days in the next month
(April 2013)

cal $(date +"%m %Y" --date "next month") | awk 'NF {DAYS = $NF}; END {print DAYS}'
30