Programación en castellano
Inicio > Taller PHP > Lenguajes de script > Javascript > ¿Cuánto queda para el año 2000?
-Artículos

¿Cuánto queda para el año 2000?

1 . En qué consiste
2 . Cómo realizarlo

En muchas páginas, atrapadas por la moda del supuesto fin de milenio, colocan contadores que nos indican lo que queda para que llegue el año 2000. Te enseñamos cómo lo hacen.

En qué consiste

Si cambias la fecha de tu ordenador y vuelves a cargar esta página, verás que la frase de arriba cambia. Esto es síntoma inequívoco de que dicha frase está escrita por medio de un programa que se ejecuta en tu ordenador. Por un script.

Cómo realizarlo

Necesitaremos dos cosas para realizar este truco. La primera es colocar en el lugar de nuestras páginas donde deseemos que se escriba la cuenta atrás una llamada a la función que se encargará de escribirlo:

<P><SCRIPT LANGUAGE="Javascript">
<!--
  escribirCuentaAtras();
// -->
</SCRIPT></P>

La segunda, como os podéis imaginar, es escribir dicha función. El código es el siguiente:

function escribirCuentaAtras() {
  var fechaActual = new Date();
  var fecha2000 = new Date("January 1, 2000");
  var tiempoRestante = fecha2000.getTime() - fechaActual.getTime();
  var dias = Math.floor(tiempoRestante / (1000 * 60 * 60 * 24));
  if (dias > 1)
    document.write("Quedan " + dias + " días para el año 2000")
  else if (dias == 1)
    document.write("Sólo queda un día para el año 2000")
  else if (dias == 0)
    document.write("Esta noche llega el apocalipsis")
  else
    document.write("Pero... ¿todavía funcionan los ordenadores?");
}

Lo primero que hace esta función es crear instancias del objeto Date. La fecha actual se crea sin aportar ningún parámetro al constructor, es decir, se crea igualandolo a lo bruto con new Date(). Esto consigue que la fecha creada contenga el día y la hora actuales.

La fecha del 1 de enero del año 2000 se crea llamando al constructor con un parámetro que permita identificar la fecha que deseamos crear. Javascript permite más de una manera de hacerlo; en este caso lo que hacemos es pasarle un único argumento de tipo cadena que contiene la fecha expresada en inglés. También podríamos escribir new Date(año, mes, dia), por ejemplo, con los tres parámetros expresados en números.

Lo siguiente que hacemos es restar ambas fechas. Para eso utilizamos el método getTime() que devuelve el número de milisegundos transcurridos desde las 0:00 horas del 1 de enero de 1970. La razón de tan extraña manera de convertir una fecha a un número (que se pueda sumar y restar cómodamente) es que el sistema operativo Unix también lo hace así. Las cosas raras se mantienen. Una vez que tenemos ambas fechas convertidas a números, las restamos y convertirmos el resultado, de modo que éste esté expresado en días, y no en milisegundos.

Por último, nos queda escribir el resultado. Para ello utilizaremos el famoso método document.write(). Lo que vayamos a escribir depende del número de días que queden. No resultaría muy elegante decir que quedan -123 días para el año 2000, por poner un ejemplo.

 

Últimos comentarios
Últimos 5 comentarios

corrección (24/10/2006)

Por
La instancia de la variable "fechaActual", no es la correcta, ya que allí se está considerando las horas, minutos y segundos, por eso que hace variar algunas veces el resultado. Para comparación de dias la instancia correcta sería:

var now = new Date();
var fechaactual = new Date(now.getYear(),now.getMonth(),now.getDate());

Tengo la solucion (15/10/2004)

Por
Hola, no se si han resuelto la cuestion, pero el problema esta en los años biciestos como es este 2004. Saludos!

dias, minutos y segundos (20/02/2002)

Por
como pueda hacer para que ademas de los dias me de las horas, los minutos y los segundos ?
Gracias

Bien (02/12/2001)

Por
Esta bien, aunque el año 2000 ya paso a la
historia, se puede usar para otras fechas.
mt72.

Conchale (09/10/2001)

Por

Fui yo la les envié la felicitación por este código, pero a veces me calcula con un dí más o con un día menos yo estoy comparando los resultados con los que arroja Excel, por favor si pueden ayudarme escríbanme
 
Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados