23-08-2010, 01:56
Boa noite a todos os participantes deste fórum.
Chamo-me Sara Canelas, actualmente sou estudante nível IV desenvolvimento de produtos multimédia e venho por este meio pedir-vos ajuda para a conclusão do um projecto que estou a desenvolver para javascript.
Estou a tentar gerar o calendário para os 12 meses deste ano. O meu problema está na impressão dos dias. Deixo aqui o código para que percebam.
Como uso o Mozilla como browser executei este script passo a passo e verifiquei que a variável data, ao entrar no ciclo for que controla os dias, ela esta a assumir o mês actual, Agosto como tal, gera-me as tabelas correctamente, mas na tabela do mês de Janeiro começa-me a imprimir os dias de Agosto. A minha dúvida é a seguinte: da mesma forma que mando imprimir os meses tenho que criar um ciclo for (i=0; i<meses.length; i++) antes de abrir o ciclo dos dias? já andei com algumas tentativas para resolver o assunto mas sem sucesso.
Agradeço qualquer ajuda que me possam dar para a resolução deste meu problema.
Cumprimentos.
Chamo-me Sara Canelas, actualmente sou estudante nível IV desenvolvimento de produtos multimédia e venho por este meio pedir-vos ajuda para a conclusão do um projecto que estou a desenvolver para javascript.
Estou a tentar gerar o calendário para os 12 meses deste ano. O meu problema está na impressão dos dias. Deixo aqui o código para que percebam.
Código:
function calendario(){
var data = new Date();
var ano = data.getFullYear();
var mes = data.getMonth();
var dia = data.getDate();
var diaSemana = data.getDay();
var meses = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"];
var semana = ["Dom","Seg","Ter","Qua","Qui","Sex","Sab"];
data.setDate(1);
for (m=0; m<meses.length; m++) {
document.write("<center><table border=1><tr><th colspan=7>" + meses[m] + " " + ano + "</th><tr>");
document.write("<tr>");
for (i=0; i<semana.length; i++) {
document.write("<td>" + semana[i] + "</td>");
}
document.write("</tr>");
for (i=0; i<data.getDay(); i++) {
document.write("<td></td>");
}
for (i=0; i<31; i++) {
if (data.getDate()>i) {
diaSemana = data.getDay();
if (diaSemana == 0) {
document.write("<tr>");
}
if (diaSemana != 7) {
document.write("<td>" + (i+1) + "</td>");
}
if (diaSemana == 7) {
document.write("</tr>");
}
}
data.setDate(data.getDate() + 1);
}
}
}
Como uso o Mozilla como browser executei este script passo a passo e verifiquei que a variável data, ao entrar no ciclo for que controla os dias, ela esta a assumir o mês actual, Agosto como tal, gera-me as tabelas correctamente, mas na tabela do mês de Janeiro começa-me a imprimir os dias de Agosto. A minha dúvida é a seguinte: da mesma forma que mando imprimir os meses tenho que criar um ciclo for (i=0; i<meses.length; i++) antes de abrir o ciclo dos dias? já andei com algumas tentativas para resolver o assunto mas sem sucesso.
Agradeço qualquer ajuda que me possam dar para a resolução deste meu problema.
Cumprimentos.