Calendario
JavaScript
5.060 visualizaciones desde el 21 de Abril del 2016
Genera un calendario mediante JavaScript en el que puedes avanzar hacia el siguiente mes o el anterior.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Ejemplo de Calendario</title>
</head>
<body onload="calendario()">
<details>
<H1>Calendario</H1>
<p id="demo"></p>
</details>
<script>
function calendario(anyo, mes) {
document.getElementById("demo").innerHTML="";
var body = document.getElementById ("demo");
var d = new Date();
var meses = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
var dias = new Array("L","M","X","J","V","S","D");
if (anyo == null) {
anyo = d.getFullYear();
} else {
d.setFullYear(anyo);
}
var anyoant = anyo - 1;
var anyosig = anyo + 1;
if (mes == null) {
mes = d.getMonth();
} else {
d.setMonth(mes);
}
if (mes == 0) {
var mesant = 11;
} else {
var mesant = mes - 1;
}
if (mes == 11) {
var messig = 0;
} else {
var messig = mes + 1;
}
var dia = 1;
var table = document.createElement("table");
var tableRow = document.createElement("tr");
var tableData = document.createElement("td");
tableData.setAttribute("colspan", "7");
var textCell = document.createTextNode(anyo);
tableData.appendChild(textCell);
tableRow.appendChild(tableData);
table.appendChild(tableRow);
var tableRow = document.createElement("tr");
var tableData = document.createElement("td");
tableData.onclick = function(){if (mesant == 11) {calendario(anyoant, mesant);}else{calendario(anyo, mesant);}};
var textCell = document.createTextNode("<");
tableData.appendChild(textCell);
tableRow.appendChild(tableData);
var tableData = document.createElement("td");
tableData.setAttribute("colspan", "5");
var textCell = document.createTextNode(meses[mes]);
tableData.appendChild(textCell);
tableRow.appendChild(tableData);
var tableData = document.createElement("td");
tableData.onclick = function(){if (messig == 0) {calendario(anyosig, messig);}else{calendario(anyo, messig);}};
var textCell = document.createTextNode(">");
tableData.appendChild(textCell);
tableRow.appendChild(tableData);
table.appendChild(tableRow);
var tableRow = document.createElement("tr");
for (var i = 0; i < 7; i++) {
var tableData = document.createElement("td");
var textCell = document.createTextNode(dias[i]);
tableData.appendChild(textCell);
tableRow.appendChild(tableData);
}
table.appendChild(tableRow);
d.setDate(dia);
while (mes == d.getMonth()) {
var tableRow = document.createElement("tr");
for (var i = 0; i < 7; i++) {
var tableData = document.createElement("td");
if (mes != d.getMonth()) {
var textCell = document.createTextNode(" ");
} else {
if ((1 + i) < d.getDay()) {
var textCell = document.createTextNode(" ");
} else {
var textCell = document.createTextNode(dia);
dia++;
d.setDate(dia);
}
}
tableData.appendChild(textCell);
tableRow.appendChild(tableData);
}
table.appendChild(tableRow);
}
table.setAttribute("border", "1");
body.appendChild(table);
}
</script>
</body>
</html>
Comentarios sobre la versión: 1.0 (2)
Gracias por tu comentario, Vicent