Узнать количество дней в месяце можно так:
var dayCount = 32 - new Date(year, month, 32).getDate()
Смысл этого решения в том, что можно указывать заведомо несуществующее число, и тогда js сам определит правильное. То есть, можно указать 32 декабря — js поймёт, что так не бывает, и создаст дату 1 января. Вместо 32 ноября создаст 2 декабря. А вместо 32 февраля — 2 или 3 марта в зависимости от високосности года.
Дальше уж сами. Описание методов Date на javascript.ru есть вполне вменяемое.