Y otra solución con mejor visualización y más opciones:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<style>
div{
border: solid;
width: 400px;
height: 400px;
margin-left: 450px;
margin-top: 50px;
text-align: center;
}
table{
width: 300px;
font-size: 24px;
text-align: center;
margin-left: 50px;
margin-top: 25px;
}
</style>
<script type="text/javascript">
window.onload = function(){
var rellenarDias = ["Lu","Ma","Mi","Ju","Vi","Sa","Do"];
var diasSemana = document.getElementsByTagName('th');
for(var i=0;i<diasSemana.length;i++){
diasSemana[i].textContent = rellenarDias[i];
}
var fechaAlmacenada = new Date();
var pregunta = confirm('Quieres ver un mes en concreto?-"Aceptar"\nO quieres ver el mes actual?-"Cancelar"');
if(pregunta == true){
var anyoAlmacenado = prompt('Entra el año');
var mesAlmacenado = prompt('Entra el mes en cifras');
mesAlmacenado = mesAlmacenado-1;
}else{
mesAlmacenado = fechaAlmacenada.getMonth();
anyoAlmacenado = fechaAlmacenada.getFullYear();
}
var miFecha = new Date(anyoAlmacenado,mesAlmacenado,1)
var titulo = document.getElementsByTagName('span');
var mes = ["ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"];
titulo[0].textContent = mes[miFecha.getMonth()]+" DE "+miFecha.getFullYear();
var mesesPares = /(ENERO)|(MARZO)|(MAYO)|(JULIO)|(AGOSTO)|(OCTUBRE)|(DICIEMBRE)/;
var mesFebrero = /FEBRERO/;
var diasDelMes;
if(mesesPares.test(titulo[0].textContent)){
diasMes = 31;
}else if(mesFebrero.test(titulo[0].textContent)){
diasMes = 29;
}else{
diasMes = 30;
}
var celdas = document.getElementsByTagName('td');
var primerDia = miFecha.getDay();
if(primerDia==0){
primerDia = 7
}
for(var i=0; i<celdas.length; i++){
if(i<primerDia-1 || (i-(primerDia-2))>diasMes){
celdas[i].textContent = "";
}else{
celdas[i].textContent = i-(primerDia-2);
if(mesAlmacenado == fechaAlmacenada.getMonth() && anyoAlmacenado == fechaAlmacenada.getFullYear()){
celdas[fechaAlmacenada.getDate()].style.backgroundColor = "red";
}
}
}
}
</script>
</head>
<body style="text-align: center;">
<h1>Candario</h1>
<div id="central">
<table>
<span style="text-align: center;"></span>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
Gracias.