Cierto, se puede hacer con un bucle. Aunque como ves con el código que expuse no es necesario recorrer todos los días para contar los días del mes excepto lunes y domingos.
Cualquier cosa que no entiendas ya me dices. Como ves, para obtener los días de un mes tampoco es necesario restar. La función daysOfMonth presenta otra alternativa sin la división que hacías para obtener los días. (
getDate es otra función interesante a conocer)
Saludos!