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

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.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
SIGUIENTE ARTÍCULO

HAY 7 COMENTARIOS
  • Kenny Domínguez dijo:

    Hola a Daniel y a Joaquin, la presente es para darles las gracias por publicar esta información me fue muy útil en mi asignación, aunque no era referente al número de días para el año 2000, pero necesitaba restar fechas en javascript Muchos besos y muchas gracias, si tienen código pavo que enviarme se los agradecería muchisisimo yo trabajo en vbscript y javascript

  • Kenny Domínguez dijo:

    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

  • mt72 dijo:

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

  • javier R dijo:

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

  • Claudio dijo:

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

  • Cesar Bedoya dijo:

    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());

  • easterncurio dijo:

    Http://www.easterncurio.com sell Mueble Chino Antiguo Antigüedades de China Artesanías Antigüedades de China Arqueológico Oriental Curiosidad Mueble Antiguo Chino Revolución Cultural China Cerámica Porcelana Vasijas Buda Arte Bronce y Cobre Bambú Piedra Talla de madera Te Chino Perla y Collar Pinturas Iluminación Mongolia y Tibet Textiles Enmarcado y molduras Muebles de Jardín Vasijas para jardín Casa de aldea Reacabado Decoradores de interior Paisaje Arquitectos Jardín Diseñadores Cenador Cestos Monederos Joyería Misceláneos Alacenas Chinas Alacenas Armarios Sillería China Mobiliario de Mongolia Muebles Alacenas para Bodegas Bancos Taburetes Mueble Chino Tallado y Biombos Puertas antiguas Ruedas Textiles Objetos de laca Tejidos Sedas articulos de seda Vestido Antiguo Objetos en laca China Vietnamita Objetos en laca tailandesa Cajas Cofres Adornos para Pared Del Tibet Joyería Cajas Piel cajas de madera cofres Pinturas Papeles pintados Posters antiguos Bordados tallas Cajas del Tibet Alacenas del Tibet Cestos Lamparas Iluminación Cubos Bandejas Linternas Chinas Lámparas Pantallas para lámparas Plata pequeñas alfombras Muebles Palanganas Jardineras Estatuas Alfombras Orientales Alfombras del Tibet Mesas de café Armarios para TV Mesas Chinas Mesas altar Cloisonne Mobilario Articulos Miscelaneos Vasos Cloisonne Jaulas de Pajaros Frascos para Perfumes Cerámicas Antigüedades chinas Mueble antiguo Chino mueble chino chino alacenas chinas antigüedades orientales antigüedades arte de Asia arte asiático Comerciantes en antigüedades artefacto arte ceramica ceramicas vasijas Dinastía Ming dinastía ming Dinastía Qing dinastía qing Dinastía Ching dinastía ching mesas cestos huanghuali alacena alacenas fragmentos arquitectónicos Arcón silla cubos puerta puertas tallas retratos de antepasados Tibet Tibetano arte Tibetano cofre tibetano loza importaciones de China Santa Cruz Menlo Park armario diseño interior decorador de interiors diseñador de interiores Muebles de Asia y Sur América Arte para el hogar las mejores antigüedades diseño accesorios de calidad mueble moderno fabricación Exportador reproducción de muebles mueble antiguo de Asia mueble antiguo de China rustico oriental cerámicas vasijas terracotta echo a mano regalo curiosidad oriental Mueble de Asia mueble rustico arte tribal Tibetano decoración del hogar Suministradores en Asia China de muebles antiguos chinos Muebles estilo Ming Qing porcelana talla estatua mueble antiguo oriental mueble antiguo de China mueble tradicional Chino muebles de estilo clásico rustico Reproducciones reproducción de muebles joyería del Tibet Accesorios antiguos Asiáticos arte popular pinturas Asiáticas artesanías orientales artesanías de Oriente ajuares piedras preciosas Antiguedad de China antiguedades tradicionlaes Muebles antiguos Chinos tradicionale articulos para el hogar y jardín regalo de China regalos muebles sólidos de maderas duras consumible tallas terracotta tallas de buda decoración manufactura y suministrador FLORON TIRADOR TIRADORES HERRAJES http://www.easterncurio.com http://www.chineart.com/esp/esp.htm email: [email protected] [email protected]

Conéctate o Regístrate para dejar tu comentario.