Как создать красивую объединённую таблицу

Чёт совсем не понимаю как вывести красивую табличку, сверху месяц общий для всех его дней - снизу дни. Написал кое-какое поделие, но оно не работает если в последнем месяце меньше 2 дней.

Или кто-нибудь покажет как правильно нужно это делать.

введите сюда описание изображения

let start = 1674777600;
start = new Date(start*1000);
let now = new Date(1675641600*1000); // РАБОТАЕТ
// let now = new Date(1675209600*1000); // НЕ РАБОТАЕТ
let loop = new Date(start);

let tableMonth = '';
let tableDay = '<tr>';

let pointMonth = 0;
let pointMonth_date = loop.getUTCMonth();

while (loop <= now) {
    if (loop < now && pointMonth !== 0 && pointMonth_date != loop.getUTCMonth()) {
        pointMonth_date = loop.getUTCMonth();
        tableMonth += `<td colspan="${pointMonth}">${loop.getUTCMonth()}</td>`;
        pointMonth = 1;
    } else {
        pointMonth++;
        if (loop >= now) {
            tableMonth += `<td colspan="${pointMonth-1}">${loop.getUTCMonth()+1}</td>`;
        }
    }

    tableDay += `<td>${loop.getUTCDate()}</td>`;

    let newLoop = loop.setDate(loop.getDate()+1);
    loop = new Date(newLoop);
}

tableMonth += '</tr>';
tableDay += '</tr>';

document.querySelector('.grant_table table').insertAdjacentHTML("afterbegin", tableMonth+tableDay);
<div class="grant_table">
  <table></table>
</div>


Ответы (0 шт):