just use 31 for all month days (so we don't have to refresh if choosing another month).
refactor form / option stuff into shared lib