Setas para mudar o mês no calendário em JavaScript

Agora vamos adicionar setas abaixo do calendário para mudar o mês. Vamos fazer alterações no código HTML:

html<div id="parent">
  <div id="calendar">
    <div class="info">Jan 2020</div>
    <table>
      <thead>
        <tr>
          <th>seg</th>
          <th>ter</th>
          <th>qua</th>
          <th>qui</th>
          <th>sex</th>
          <th>sáb</th>
          <th>dom</th>
        </tr>
      </thead>
      <tbody class="body"></tbody>
    </table>
    <div class="nav">
      <a href="#" class="prev">←</a>
      <a href="#" class="next">→</a>
    </div>
  </div>
</div>

Vamos fazer alterações no código CSS:

css#parent {
  text-align: center;
}
#calendar {
  display: inline-block;
}
#calendar td, #calendar th {
  padding: 10px;
  border: 1px solid black;
  text-align: center;
}

#calendar .nav, #calendar .info {
  text-align: center;
}
#calendar a {
  color: blue;
  font-size: 25px;
  text-decoration: none;
}
#calendar a:hover {
  color: red;
}

#calendar .active {
  color: red;
}

Vamos obter as referências para as setas em variáveis:

javascriptlet prev = calendar.querySelector('.prev');
let next = calendar.querySelector('.next');

Discussão

Agora vamos discutir como resolver a tarefa. Na verdade, o código do nosso calendário foi escrito de forma facilmente extensível: temos a função draw, que desenha o calendário para um determinado mês. Assim, ao clicar em uma seta, podemos redesenhar o calendário com um número de mês diferente (e possivelmente ano).

Aqui está um exemplo do que podemos fazer ao clicar na seta do próximo mês:

javascriptnext.addEventListener('click', function() {
  draw(body, getNextYear(year, month), getNextMonth(month));
});

Como você pode ver, aqui são usadas as funções getNextYear e getNextMonth. Vamos discutir o que elas devem fazer.

Como o nome sugere, a função getNextYear obtém o próximo ano. Isso significa que, se agora é dezembro, ao mudar para o próximo mês o ano deve aumentar em 1. Se não for dezembro, a função simplesmente deve retornar o ano atual.

A função getNextMonth deve obter o próximo mês. Para todos os meses, exceto dezembro, ela adicionará um ao número do mês. E para dezembro, o próximo mês será janeiro com o número 0.

Operações semelhantes devem ser feitas ao clicar no botão do mês anterior:

javascriptprev.addEventListener('click', function() {
  draw(body, getPrevYear(year, month), getPrevMonth(month));
});
Задание 1

Implemente a funcionalidade dos botões de mudança de mês.

Задание 2

Faça com que a informação acima do calendário corresponda ao mês e ano exibidos.