RAX7, Я выяснил, проблема в том, что до конца месяца осталось совсем ничего, поэтому этот промежуток говорит о длинне оставшихся дней в месяце. Только вот как эту логику победить, я пока что не понимаю. Выставил вручную началу и концу 1 день месяца.
RAX7, Большое спасибо за помощь, осталась 1 нерешенная проблема:
В этом примере https://jsfiddle.net/jusonfmd/ в расчет берется 8 месяцев.
В новом примере https://jsfiddle.net/mzw9ogu0/2/ в расчет берутся тоже 8 месяцев, только сгенерированные руками через new Date(). В итоге, опять появился зазор между 0 и первым месяцем. В чем может быть проблема? Я ломаю голову