-2
I am a beginner and I am learning in Mallorca, I am a week breaking my head to solve this problem. Some calendar months are right others with more days others with less. Someone with more experience can see what I don’t see?
// Informações como Data e Hora
var data = new Date()
var ano = data.getFullYear()
var calendarioAno = ano
var meses = data.getMonth()
var NomesMeses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']
// Ligação com o HTML
var relogio = document.getElementById('horaRes')
var res = document.getElementById('ano')
var AnoNoCalendario = document.getElementById('AnoNoCalendario')
var mes = document.getElementById('mes')
// ligção com os dias da semana
var listaItens = [
    item0 = document.getElementById('item0'),
    item1 = document.getElementById('item1'),
    item2 = document.getElementById('item2'),
    item3 = document.getElementById('item3'),
    item4 = document.getElementById('item4'),
    item5 = document.getElementById('item5'),
    item6 = document.getElementById('item6'),
    item7 = document.getElementById('item7'),
    item8 = document.getElementById('item8'),
    item9 = document.getElementById('item9'),
    item10 = document.getElementById('item10'),
    item11 = document.getElementById('item11'),
    item12 = document.getElementById('item12'),
    item13 = document.getElementById('item13'),
    item14 = document.getElementById('item14'),
    item15 = document.getElementById('item15'),
    item16 = document.getElementById('item16'),
    item17 = document.getElementById('item17'),
    item18 = document.getElementById('item18'),
    item19 = document.getElementById('item19'),
    item20 = document.getElementById('item20'),
    item21 = document.getElementById('item21'),
    item22 = document.getElementById('item22'),
    item23 = document.getElementById('item23'),
    item24 = document.getElementById('item24'),
    item25 = document.getElementById('item25'),
    item26 = document.getElementById('item26'),
    item27 = document.getElementById('item27'),
    item28 = document.getElementById('item28'),
    item29 = document.getElementById('item29'),
    item30 = document.getElementById('item30'),
    item31 = document.getElementById('item31'),
    item32 = document.getElementById('item32'),
    item33 = document.getElementById('item33'),
    item34 = document.getElementById('item34'),
    item35 = document.getElementById('item35'),
    item36 = document.getElementById('item36'),
    item37 = document.getElementById('item37'),
    item38 = document.getElementById('item38'),
    item39 = document.getElementById('item39'),
    item40 = document.getElementById('item40'),
    item41 = document.getElementById('item41'),
]
// O que escreve no HTML
res.innerHTML += ` ${ano}`
AnoNoCalendario.innerHTML = `${calendarioAno}`
mes.innerHTML = `${NomesMeses[meses]}`
// Função do relogio
function HoraAtual(){
    hoje = new Date()
    hora = hoje.getHours()
    minutos = hoje.getMinutes()
    segundos = hoje.getSeconds()
    relogio.innerHTML = `${hora} horas ${minutos} minutos ${segundos} segundos`
    setTimeout('HoraAtual()', 500)
}
//Diminui os anos no calendário
function AnoAnterior(){
    calendarioAno -= 1
    AnoNoCalendario.innerHTML=`${calendarioAno}`
    escreverCal()
}
//Aumenta os anos no calendário
function AnoPosterior(){
    calendarioAno += 1
    AnoNoCalendario.innerHTML=`${calendarioAno}`
    escreverCal()
}
function botãoCima(){
    if (meses == 0){
        AnoAnterior()
        meses = 11
        mes.innerHTML = `${NomesMeses[meses]}`
    }else{
        meses -= 1
        mes.innerHTML = `${NomesMeses[meses]}`
    }
    escreverCal()
}
function botãoBaixo(){
    if (meses == 11){
        AnoPosterior()
        meses = 0
        mes.innerHTML = `${NomesMeses[meses]}`
    }else{
        meses += 1   
        mes.innerHTML = `${NomesMeses[meses]}`
    }
    escreverCal()
}
function diasDoMes(mes, ano){
    return new Date(ano, mes, 0).getDate();
}
function diaDaSemana(mes, ano){
    return new Date(ano, mes).getDay();
}
function escreverCal() {
    var Dsemana = diaDaSemana(meses, calendarioAno);
    var Qmes = diasDoMes(meses, calendarioAno);
    for (var contador=0; contador < 41; contador++){
        listaItens[contador].innerText = ''
    }
    for (var c = Dsemana; c < (Qmes+Dsemana); c++) {
        listaItens[c].innerHTML += `${c - Dsemana +1 }`
    }
}
escreverCal()body{
    background: rgb(32, 32, 32);
    font: normal 18pt Arial;
}
header{
    color: white;
    text-align: center;
}
section#relogio{
    text-align: center;
    color: white;
    background: rgb(14, 15, 29);
    border-radius: 15px;
    padding: 10px;
    width: 370px;    
    margin: auto;
    box-shadow: 5px 5px 5px black;
}
section#calendario{
    background: rgb(241, 241, 241);
    border-radius: 10px;
    padding: 15px;
    width: 800px;
    margin: auto;
    box-shadow: 5px 5px 5px black;
    margin-top: 20px;
}
.conteiner{
    display: grid;
    grid-template-columns: repeat(7, auto);
    grid-gap: 20px;
    font: 16px;
    text-align: center;
    margin: auto;
}
div#selectAno{
    text-align: center;
    margin: auto;
}
button#botãoEsquerda{
    right: 10px;
    top: -3px; position: relative;
}
button#botãoDireita{
    left: 10px;
    top: -3px; position: relative;
}
button#botãoCima{
    float: right;
}
button#botãoBaixo{
    float: right;
}
footer{
    color: whitesmoke;
    text-align: center;
    margin-top: 10px;
}<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Calendário</title>
    <link rel="stylesheet" href="estilo.css">
</head>
<body onload="HoraAtual()">
    <header>
        <h1 id="ano">Calendário</h1>
        <hr>
    </header>
    <section id="relogio">
        <div id="horaRes"></div>
    </section>
    <section id="calendario">
        <div id="selectAno">
            <button id="botãoEsquerda" onclick="AnoAnterior()">←</button>
            <a id='AnoNoCalendario'></a>
            <button id="botãoDireita" onclick="AnoPosterior()">→</button>
        </div>
        <hr>
        <div>
            <a id="mes" onload="mes()"></a>
            <button id="botãoCima" onclick="botãoCima()">↑</button>
            <button id="botãoBaixo" onclick="botãoBaixo()">↓</button>
        </div>
        <hr>
        <div class="conteiner">
            <div id="item">Domingo</div>
            <div id="item">Segunda</div>
            <div id="item">Terça</div>
            <div id="item">Quarta</div>
            <div id="item">Quinta</div>
            <div id="item">Sexta</div>
            <div id="item">Sabádo</div>
            <div id="item0"></div>
            <div id="item1"></div>
            <div id="item2"></div>
            <div id="item3"></div>
            <div id="item4"></div>
            <div id="item5"></div>
            <div id="item6"></div>
            <div id="item7"></div>
            <div id="item8"></div>
            <div id="item9"></div>
            <div id="item10"></div>
            <div id="item11"></div>
            <div id="item12"></div>
            <div id="item13"></div>
            <div id="item14"></div>
            <div id="item15"></div>
            <div id="item16"></div>
            <div id="item17"></div>
            <div id="item18"></div>
            <div id="item19"></div>
            <div id="item20"></div>
            <div id="item21"></div>
            <div id="item22"></div>
            <div id="item23"></div>
            <div id="item24"></div>
            <div id="item25"></div>
            <div id="item26"></div>
            <div id="item27"></div>
            <div id="item28"></div>
            <div id="item29"></div>
            <div id="item30"></div>
            <div id="item31"></div>
            <div id="item32"></div>
            <div id="item33"></div>
            <div id="item34"></div>
            <div id="item35"></div>
            <div id="item36"></div>
            <div id="item37"></div>
            <div id="item38"></div>
            <div id="item39"></div>
            <div id="item40"></div>
            <div id="item41"></div>
        </div>
    </section> 
    <footer>Instagram: @_danielgoulart</footer>
    <script src="script.js"></script>
</body>
</html>