Fecha y Hora en AS3 con Date()

Wednesday, 18. November 2009

Clase Date();

This movie requires Flash Player 9

Reloj desarrollado en Flash con Date();

En muchas ocasiones nos encontramos con la necesidad de utilizar fechas, horas y segmentos de tiempo dentro de la programación en ActionScript 3. Para realizar estas labores, la clase Date() se ajusta perfectamente a muchas de nuestras necesidades. Sin embargo es una clase que en muchas ocasiones cuesta aprender a manejar y utilizar, pero que representa una gran utilidad.

En primer lugar hablaremos de la Clase Date() y sus parámetros. Luego podremos ver algún ejemplo de su utilidad. Finalmente veremos cómo acceder a las diferentes propiedades y métodos, y para qué nos servirán cada uno (los principales).

La clase Date();

La clase Date() nos permite conocer fácilmente datos como Fecha y Hora del momento en el que se ejecuta una acción, o en que se utiliza una aplicación. La clase Date tiene como punto de comparación de fechas las 00:00 del 1 de enero de 1970, y por lo tanto, cualquier acción con dicha clase tiene esta fecha como punto de partida.

Para conocer su formato, podemos escribir el siguiente código:

var fecha:Date=new Date();
trace(fecha);

En el panel de salida, nos devolverá fecha y hora actuales en el siguiente formato (en Inglés):

Día de la semana (Sun-Sat) / Mes(Jan-Dec) / Día del mes (1-31) / Hora actual (hh:mm:ss) / Zona Horaria (GMT) / Año (AAAA)

Ejemplo: Wed Nov 18 14:57:40 GMT-0500 2009

Parámetros

Los parámetros de esta clase se pueden específicar de diversas formas. Explicaremos las dos posibilidades más concretas:

- Fecha:

Date(año,mes,dia del mes,hora, minutos, segundos, milisegundos);

  • Año: Numero de 4 dígitos (2009).
  • Mes: Número de 0 a 11 (0=Enero;11=Diciembre).
  • Día del mes: Número de 1 a 31.
  • Hora: Número de 0 a 23.
  • Minutos: Número de 0 a 59.
  • Segundos: Número de 0 a 59.
  • Milisegundos: Número de 0 a 999.

De esta forma podemos especificar a flash una Fecha específica. Debemos poner los parámetros de izquierda a derecha hasta donde queramos, y podemos no poner los siguientes.
Por ejemplo Date(2009,11,31); sería una fecha válida correspondiente al 31 de Diciembre del año 2009.

- Milisegundos:

Date(milisegundos);

  • Milisegundos: Cantidad total de Milisegundos trascurridos desde el 1 de enero de 1970 a las 00:00 hasta la fecha que establecemos.

De esta forma podemos también trabajar fechas y horas específicas.
Por ejemplo Date(946702800000); sería una fecha válida correspondiente al 1 de Enero del año 2000.

Utilidad

Hace algunos días alguien preguntaba como hacer que si una persona entraba en la mañana, al mediodía, en la tarde o en la noche la imagen de fondo de su aplicación fuera diferente. Pues bien, para eso nos puede servir la clase Date(), y realmente este caso me llevó a escribir el artículo. Existen muchas funciones que nos permiten utilizar parte de la información de Date() para realizar acciones. Para este caso usamos .getHours, que nos devuelve un número de 0 a 23 indicandonos la hora en la que se utiliza la aplicación. Para esto almacenamos en una variable la fecha:

var fecha:Date= new Date;

Una vez hecho esto, averiguamos la hora actual del usuario:

var hora=fecha.getHours();

Y ahora, através de condicionales, averiguamos si es de día, tarde o noche. Dependiendo de eso realizamos determinada acción. Por ejemplo de esta forma:

if(hora<12){
trace("Manana");
}else if(hora<19){
trace("Tarde");
}else{
trace("Noche");
}

Teniendo este código completo, podemos probar que Flash realiza una acción diferente en la mañana, en la tarde y en la noche. En este caso hacemos simplemente un trace(), pero en todo caso cambiamos el trace() por cualquier acción que se desee realizar. El código final queda así:

var fecha:Date= new Date;
var hora=fecha.getHours();
if(hora<12){
trace("Manana");
}else if(hora<19){
trace("Tarde");
}else{
trace("Noche");
}

Métodos y Atributos:

Supongamos que almacenamos la fecha en una variable a través de la clase Date(); de la siguiente forma:

var fecha:Date=new Date();

Podemos utilizar el siguiente código para acceder, por ejemplo, al día del mes de la siguiente forma:

var fecha:Date=new Date();
var dia=fecha.getDate();
trace(dia);

lo que nos devolvería en el panel de salida el numero del día entre 1 y 31.

Igualmente podemos utilizar después del nombre de la variable:

Código Utilidad
.getDate() Devuelve el día del mes
1-31
.getDay() Devuelve el día de la semana
0 = domingo
6=Sábado
.getFullYear() Devuelve el año en 4 digitos (1978)
.getHours() Devuelve la hora actual
0-23
.getMilliseconds() Devuelve los milisegundos actuales
0-999
.getMinutes() Devuelve los minutos actuales
0-59
.getMonth() Devuelve el mes actual
0 = Enero
11=Diciembre
.getSeconds() Devuelve los segundos actuales
0-59
.getTime() Devuelve los milisegundos transcurridos desde el 1 de enero de 1970
.getTimezoneOffset() Devuelve la diferencia en minutos entre la hora actual y la hora universal UTC
Código Utilidad
.setDate() Establece el día del mes
1-31
.setFullYear(año,mes,dia) Establece una fecha
Año: 4 digitos
Mes: Numero 0-11
Dia: Número del 0 – 31
.setHours(hora,minutos,segundos,milisegundos) Establece una hora específica.
Hora: 0-23
Minutos: 0-59
Segundos: 0-59
Milisegundos: 0-999
.setMilliseconds() Establece los milisegundos
0-999
.setMinutes(minutos,segundos,milisegundos) Establece los minutos
.setMonth(mes,dia) Establece el mes
Mes: 0-11
Día: 0-31
.setSeconds(segundos,milisegundos) Establece los segundos
.setTime() Establece uan fecha en milisegundos transcurridos desde el 1 de enero de 1970

Si queremos formatear la fecha, o por ejemplo publicar la fecha formateada en español podemos usar la clase Date(). Para ver un ejemplo haz click aquí

Espero sea de utilidad el artículo. Cualquier comentario o duda, utilizar el sistema de comentarios del blog.
Un saludo.

Samuel Jiménez. Esk.

VN:F [1.9.1_1087]
Rating: 7.4/10 (5 votes cast)
Fecha y Hora en AS3 con Date(), 7.4 out of 10 based on 5 ratings

6 Responses to “Fecha y Hora en AS3 con Date()”



  1. cuauhtemoc preciado Says:

    hago el siguente procedimiento,
    genero una animacion sencilla agrego en acciones var fecha:Date=new Date();
    trace(fecha);
    y no obtengo la fecha en panel………….
    ¿el panel de salida es donde estoy trabajando?

    VA:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)


  2. eskombro Says:

    El panel de salida es una pequeña ventana blanca que se abre justo donde estás trabajando el código. En la misma ventana se abren por pestañas el panel de acciones (donde aparece el código), el panel de salida, el panel de ayuda…

    Al escribir lo que pones, debe salir una ventana de fondo blanco con algo como esto:

    Wed Dec 30 00:01:37 GMT-0500 2009

    Si no te funciona compruebalo creando un cuadro de texto dinámico, ponle nombre de instancia ‘texto’ y reemplaza el trace por:

    texto.text=String(fecha);

    Saludos

    VN:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)


  3. Vane Says:

    como hago si quiero traducir Wed Dec 30 00:01:37 GMT-0500 2009 al español??? no quiero la fecha en ingles
    help :(

    VA:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)


  4. eskombro Says:

    Si queremos formatear la fecha, o por ejemplo publicar la fecha formateada en español podemos usar la clase Date(). Para ver un ejemplo haz click aquí.

    Espero te sirva. Saludos.
    Eskombro

    VN:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)


  5. Stacee Grable Says:

    This is a handy piece of writing, im delighted I stumbled onto this. Ill be back again later to check out other posts that you have on your blog.

    VA:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)


  6. MARCOS HUERTA HERNANDEZ Says:

    genial eso de las fechas me ha dado nuevas ideas y vision de desarrollar aplicaciones con calendarios personalizados

    VA:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)

Leave a Reply