Buenas, el ejercicio está bien resuelto. Hay un aspecto del diseño del código que recomendaría mejorar. Con esto me refiero a los nombres de las funciones y el contenido de las mismas. El nombre de una función debe representar lo que es o lo que hace. En el caso de una función entrarDatos debería servir únicamente para entrar datos. Sin embargo en esta función vemos que entrarDatos recupera la fecha, genera una tabla, etc.
function entrarDatos()
{
fechaActual=new Date();
cogerMesAñoDia();
generaTabla();
atributosTabla();
return fechaActual;
}
Esto se recomienda una mala práctica de programación porque en programas de miles de líneas hace el código confuso y difícil de depurar.
Para evitar problemas con los juegos de caracteres recomendamos no usar eñes en el código, por ejemplo en lugar de cogerMesAñoDia usar cogerMesAnnoDia
Salu2