JS and HTML calendar

Asked

Viewed 589 times

0

My goal is through the code below, create a calendar acts, but it is giving me error and I am not able to create the table well, because except what I already have in HTML, nothing else appears.

<html lang="pt">
<html>
<head>
  <script>
    window.onload=function(){
    Calendario();
    function Calendario(){
      // Saber qual a data atual e guardar numa variavel o dia, mês, ano e em que dia da semana vamos
      var data_atual = new Date();
      var mês = data_atual.getMonth();
      var dia = data_atual.getDate();
      var ano = data_atual.getFullYear();
      var dia_semana = data_atual.getDay();

      // Quardar em lista o total de dias de cada mês, o nome dos dias da semana e o nome dos mêses
      var dias_fev="";
      var total_dias=[31,dias_fev,31,30,31,30,31,31,30,31,30,31]
      var meses=["Janeiro","Fevereiro","Março","Maio","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"];

      //Determina se o mês de Fevereiro tem 28 ou 29 dias
      if (ano%4==0){
        if ((ano%100==0) && (ano%400!=0)){
          dias_fev=29;
        }
        else{
          dias_fev= 28;
        }
      }

      //Identificar o mês
      document.getElementById("mes").innerHTML = meses[mês+1];

      //Criar a tabela
      var tabela = document.getElementById("tabela_calend");
      var linha1 = tabela.insertRow(1);

      //Irá criar todos os dias que já passaram até agora
      var dias_passados=dia-1; //guarda os dias que já passaram desse mês
      while (dias_passados>0){
        var i=0; //o i corresponde a cada linha que será criada a cada 7 dias (1 semana -> 7 dias)
        var linha = tabela.insertRow(i);
        var seg = linha.insertCell(0);
        var ter = linha.insertCell(1);
        var qua = linha.insertCell(2);
        var qui = linha.insertCell(3);
        var sex = linha.insertCell(4);
        var sab = linha.insertCell(5);
        var dom = linha.insertCell(6);
        for (i==1; i<8; i++){
          if (dia_semana==i){
            tabela.rows[0].cells[i-1].innerHTML==dia;
          }
        }
        for(i=1; i<8; i++){
          if(tabela.rows[0].cells[i-1].value==""){
            dias_passados-=i;
          }
         }
         dias_passados=-1;
     }

     //Enqunto o dia for menor que o total de dias do mes respetivo, ele ira criar celulas e adicionar os dias
      var dias_futuros=dia+1;
      
     while (dias_futuros<total_dias[mês+1]){
        var i=1; //o i corresponde a cada linha que será criada a cada 7 dias (1 semana -> 7 dias)
        var linha = tabela.insertRow(i);
        var seg = linha.insertCell(0);
        var ter = linha.insertCell(1);
        var qua = linha.insertCell(2);
        var qui = linha.insertCell(3);
        var sex = linha.insertCell(4);
        var sab = linha.insertCell(5);
        var dom = linha.insertCell(6);
        for (i==1; i<8; i++){
          if (dia_semana==i){
            tabela.rows[1].cells[i].innerHTML==dia;
          }
        }
        for(i=1; i<8; i++){
          if(tabela.rows[1].cells[i].value==""){
            dias_futuros+=i;
          }
         }
         i+=7;
         dias_futuros++;
       }
  }
  </script>
</head>
<body>
  <section class="fundo">
    <div><h1 id="mes"></h2></div>
    <table id="tabela_calend">
      <tr>
        <td><h3>Segunda</h3></td>
        <td><h3>Terça</h3></td>
        <td><h3>Quarta</h3></td>
        <td><h3>Quinta</h3></td>
        <td><h3>Sexta</h3></td>
        <td><h3>Sábado</h3></td>
        <td><h3>Domingo</h3></td>
      </tr>
    </table>
  </section>
</body>
</html>

  • You have many typos in the code, and the first error that appears to you of "Unexpected end of input" is { or } more or less. In your case there is at least one } missing, which closes the window.onload. Now this is a sign that you’re trying to write all the code down and test it later. This is not the right way, you should block by block gradually and go confirming that it is coming out as you want to be easy to fix any problem that arises. Still there are several other small mistakes like this for (i==1;

  • Thank you, I’ll see step by step!

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.