no es lógico que una hora sea mayor que 18 y menor que 2 al mismo tiempo, eso es lo que significa la && verdadero si ambas condiciones verdaderas. Prueba cambiando el && por ||, debería funcionar
Sí, es lógico porque el formato es 24 horas. Las 18 son las 6 de la tarde y las 02, son las dos de la madrugada. Así, una hora puede ser mayor que las 18 (o sea las 6 de la tarde) y menor que las 2 (de la madrugada). Entonces "(hora >= 18 && hora <2)" abarca cualquier hora entre las 6 de la tarde y las 2 de la madrugada.
Intenté poner || como dices, pero cuando hice la prueba me di cuenta que así saldrían dos platos. Porque la condición está diciendo "si es mayor que las 6
O menor que las 2" y así saldría el desayuno o el almuerzo, dependiendo de la hora del día, porque tanto el desayuno como el almuerzo están antes de las 2 de la madrugada, por lo tanto su hora correspondiente es menor que 2 y se cumplirían las dos condiciones.
La solucion de aca del brother esta bién pero innecesaria xD, basta con que pongas un else.
Tu tienes esto:
if (hora >= 18 && hora < 02)
{
document.bgColor='D8FC84'
document.write('<center> <strong> Cena </strong> <br> <font size="4"> Sopa de Pescado </font size> </center> <br> <br>');
document.write('<center> <img src="/home/gustavo/Escritorio/Documentos/ITLA/2do cuatrimestre/Fundamento de programacion/Programas/Imagenes restaurante/sopa.jpg"> </center>');
}
Cambialo por esto:
else
{
document.bgColor='D8FC84'
document.write('<center> <strong> Cena </strong> <br> <font size="4"> Sopa de Pescado </font size> </center> <br> <br>');
document.write('<center> <img src="/home/gustavo/Escritorio/Documentos/ITLA/2do cuatrimestre/Fundamento de programacion/Programas/Imagenes restaurante/sopa.jpg"> </center>');
}
Y esto es claro porque ese rango que quieres cubrir, es el único que queda por validar, por lo tanto es un else a tus demás validaciones.
Saludos
Ok, no pensé en eso xD.
Para aclarar... ¿me dices que
siempre en la última condición que vaya a hacer debo usar un else, ya que las demás no se cumplirían y solo quedaría esa?
Lo puse así:
<html>
<head>
<title> Restaurante Delicious </title>
</head>
<body>
<script language="javascript">
alert('La hora de su sistema debe estar configurada correctamente para la adecuada visualizaci\u00f3n del sitio. Si no lo est\u00e1, por favor aj\u00fastela y vuelva a cargar la p\u00e1gina.');
var d = new Date();
var hora = d.getHours();
document.write('<font size="6"> <em> <strong> <center> Restaurante Delicious </center> </strong> </em> </font size>');
if (hora >= 02 && hora < 6)
{
document.write('<center> El restaurante está cerrado. <br> Nuestros horarios son de lunes a domingo de 6:00 a.m. a 2:00 a.m. </center>');
}
else
{
document.write('<font size="1" color="E5E7DF"> Esta página le mostrará un plato según la hora del día <br> </font size color');
document.write('<p> Para ahora tenemos: </p>');
if (hora >= 06 && hora < 12)
{
document.bgColor='A68785'
document.write('<center> <strong> Desayuno </strong> <br> Mangú de plátano verde </center> <br> <br>');
document.write('<center> <img src="Imagenes restaurante/mangu.jpg"> </center>');
}
else if (hora >= 12 && hora < 18)
{
document.bgColor='AAB295'
document.write('<center> <strong> Almuerzo </strong> <br> Bistec Encebollado </center> <br> <br>');
document.write('<center> <img src="Imagenes restaurante/bistec.jpg"> </center>');
}
else
{
document.bgColor='D8FC84'
document.write('<center> <strong> Cena </strong> <br> <font size="4"> Sopa de Pescado </font size> </center> <br> <br>');
document.write('<center> <img src="Imagenes restaurante/sopa.jpg"> </center>');
}
}
</script>
</body>
</html>
Y funciona bien.