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 thewindow.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 thisfor (i==1;
– Isac
Thank you, I’ll see step by step!
– Filipa Isidro