Funciones de fecha y hora

GameMaker:Studio dispone de un buen número de funciones y variables para leer la fecha y hora, así como calcular otros valores relacionados con el tiempo.

Variables de tiempo

Las siguientes variables predefinidas se usan para valores de fecha y tiempo específicos:

  1. current_time
  2. current_second
  3. current_minute
  4. current_hour
  5. current_day
  6. current_weekday
  7. current_month
  8. current_year

Funciones de tiempo

Las siguientes funciones se usan para obtener valores de fecha y tiempo específicos (día, mes, año, hora, etc), así como para crear valores nuevos o conocer el lapso de tiempo (días/horas) entre dos fechas dadas, etc...

  1. date_create_datetime*
  2. date_current_datetime*
  3. date_compare_date*
  4. date_compare_datetime*
  5. date_compare_time*
  6. date_valid_datetime
  7. date_date_of*
  8. date_time_of
  9. date_is_today
  10. date_leap_year
  11. date_date_string*
  12. date_datetime_string*
  13. date_time_string
  14. date_second_span
  15. date_minute_span
  16. date_hour_span*
  17. date_day_span*
  18. date_week_span
  19. date_month_span
  20. date_year_span
  21. date_days_in_month*
  22. date_days_in_year*
  23. date_get_second*
  24. date_get_minute*
  25. date_get_hour
  26. date_get_day*
  27. date_get_weekday*
  28. date_get_week*
  29. date_get_month*
  30. date_get_year*
  31. date_get_second_of_year*
  32. date_get_minute_of_year*
  33. date_get_hour_of_year*
  34. date_get_day_of_year*
  35. date_inc_second
  36. date_inc_minute
  37. date_inc_hour
  38. date_inc_day*
  39. date_inc_week
  40. date_inc_month
  41. date_inc_year

Existen dos funciones de tiempo especiales que proporcionan un alto grado de precisión y control al ejecutar el juego:

  1. get_timer
  2. delta_time
current_time

Devuelve los milisegundos transcurridos desde que el juego comenzó.


Sintaxis:

current_time;


Devuelve: Real


Descripción

Esta variable de sólo lectura devuelve el número de milisegundos que han transcurrido desde que la partida actual comenzó.


Ejemplo:

if current_time > 600000
   {
   msg = show_question_async("Would you like to rate?");
   }

El código anterior revixsa si han pasado más de 10 minutos antes de formular una pregunta al usuario.




current_second

Devuelve el segundo correspondiente al momento actual.


Sintaxis:

current_second;


Devuelve: Real


Descripción

sta variable de sólo lectura devuelve los segundos correspondientes al momento actual.


Ejemplo:

draw_text(32, 32, "The time is " + string(current_hour) + ":" + string(current_minute) + "." + string(current_second));

El código anterior dibuja la hora internacional en pantalla.




current_minute

Devuelve el minuto correspondiente al momento actual.


Sintaxis:

current_minute;


Devuelve: Real


Descripción

Esta variable de sólo lectura devuelve los minutos correspondientes al momento actual.


Ejemplo:

draw_text(32, 32, "The time is " + string(current_hour) + ":" + string(current_minute) + "." + string(current_second));

El código anterior dibuja la hora internacional actual.




current_hour

Devuelve la hora correspondiente al momento actual.


Sintaxis:

current_hour;


Devuelves Real


Description

Esta variable de sólo lectura devuelve la hora correspondiente al momento actual usando el Horario Universal (la hora devuelta ignora el horario de verano).


Ejemplo:

draw_text(32, 32, "The time is " + string(current_hour) + ":" + string(current_minute) + "." + string(current_second));

El código anterior dibuja la hora internacional actual.



current_day

Devuelve el día actual.


Sintaxis:

current_day;


Devuelve: Real


Descripción

Esta variable de sólo lectura devuelve el día actual como un valor entre 1 y 31 , dependiendo del mes en curso.


Ejemplo:

draw_text(32, 32, "Today is " + string(current_day) + "/" + string (current_month) + "/" + string(current_year) +".");

El código anterior dibujará en pantalla el día, mes y año.



current_month

Devuelve el mes actual.


Sintaxis:

current_month;


Returns: Real


Description

Esta variable de sólo lectura devuelve el mes actual como un valor numérico donde 1 es Enero y 12 es Diciembre.


Ejemplo:

draw_text((32, 32, "Today is " + string(current_day) + "/" + string (current_month) + "/" + string(current_year) +".");

El código anterior dibuja el día, mes y año.




current_weekday

Devuelve el día actual como un número real.


Sintaxis:

current_weekday;


Devuelve: Real


Descripción

Esta variable de sólo lectura devuelve día de la semana como un valornumérico, donde el Domingo es es 0 y el Sábado es 6.


Ejemplo:

var day;
switch(current_weekday)
   {
   case 0: day = "Sunday"; break;
   case 1: day = "Monday"; break;
   case 2: day = "Tuesday"; break;
   case 3: day = "Wednesday"; break;
   case 4: day = "Thursday"; break;
   case 5: day = "Friday"; break;
   case 6: day = "Saturday"; break;
   }
draw_text(32, 32, "Today is " + day +".");

Este código usa la función current_weekday para ajustar una variable al día actual en texto, y luego dibujarla para que sea vista por el usuario.




current_year

Devuelve el año en curso.

Sintaxis:

current_year


Devuelve: Real


Descripción

Esta variable de sólo lectura devuelve el año encurso.


Ejemplo:

draw_text((32, 32, "Today is " + string(current_day) + "/" + string (current_month) + "/" + string(current_year) +".");

Este código dibujará el día, el mes y el año actuales.




date_create_datetime

Crea y devuelve un valor fecha-hora basado en los valores dados.


Sintaxis:

date_create_datetime(year, month, day, hour, minute, second);


ArgumentoDescripción
year Define el año.
month Define el mes.
day Define el día.
hour Define la hora.
minute Define el minuto.
second Define los segundos.

Devuelve: Real


Descripción

Esta función crea un valor fecha-hora a partir de los componentes definidos en los argumentos.


Ejemplo:

mydatetime = date_create_datetime(2011, 9, 15, 9, 43, 30);

Esto ajusta la variable "mydatetime" al valor correspondiente a la fecha "15 de Septiembre del 2011", y la hora "9 horas, 43 minutos y 30 segundos".




date_current_datetime

Devuelve el valor fecha-hora correspondiente al momento actual.


Sintaxis:

date_current_datetime();


Devuelve: Real


Descripción

Devuelve el valor fecha-hora del momento actual. La hora devuelta ignora el Horario de Verano (por lo que corresponde al Horario Universal) y normalmente debería ser usada en conjunto con otras funciones de manejo de Fecha y Hora.


Ejemplo:

myhour = date_get_hour(date_current_datetime());
myday = date_get_day(date_current_datetime());

Esto asigna a la variable local "myhour" el valor numérico de la hora actual, y a "myday" el valor numérico del día actual.




date_compare_date

Devuelve cuál de las dos horas es la posterior.


Sintaxis:

date_compare_date( date1, date2 );


ArgumentoDescripción
date1 La primer fecha.
date2 La fecha a comparar con la primera.

Devuelve: Real


Descripción

Mediante esta función se pueden comparar dos fechas para saber cuál de las dos es la más temprana o tarde. la función devuelve -1 si date1 es anterior a date2, 0 si ambas fechas son iguales y 1 si date1 es posterior.


Ejemplo:

d = date_compare_date(date_create_datetime(2011, 9, 15, 11, 4, 0), date_current_datetime());

Esto ajusta "d" al valor correspondiente, dependiendo de cuál de las fechas sea la más temprana. Probablemente será -1, ya que la fecha actual debería ser posterior al 15 de Septiembre del 2011.




date_compare_datetime

Devuelve cuál de las dos horas de las fechas específicas es posterior (más tarde).


Sintaxis:

date_compare_datetime(date1, date2);


ArgumentoDescripción
date1 La primera fecha-hora.
date2 La fecha-hora a comparar con la primera.

Devuelve: Real


Descripción

Mediante esta función se pueden comparar dos fechas y horas para saber cuál es más temprana o más tarde que la otra. La función devuelve -1 si date1 es una hora más temprana, 1 si date1 es una hora más tarde y 0 si ambas son iguales. Sin embargo, obtener 0 con esta función es muy difícil (ambas fechas deberían tener el mismo segundo, el mismo minuto, la misma hora en el mismo día del mismo mes del mismo año para que suceda).


Ejemplo:

d = date_compare_date(date_create_datetime( 2011, 9, 15, 11, 4, 0 ), date_current_datetime());

Esto ajusta "d" al valor correspondiente, dependiendo de cuál de las dos fecha-hora es más temprana. Probablemente será -1, ya que la fecha actual debería ser posterior al 15 de Septiembre del 2011.




date_compare_time

Devuelve cuál de las dos horas es más temprana.


Sintaxis:

date_compare_time(datetime1, datetime2);


ArgumentoDescripción
datetime1 La primera fecha-hora.
datetime2 La fecha-hora a comparar con la primera.

Devuelve: Real


Descripción

Con esta función puedes comparar dos fechas y horas para saber cuál tiene el componente hora más temprana o más tarde que la otra. La función devuelve -1 si datetime1 es más temprano, 1 si datetime1 es más tarde y 0 si ambas son iguales, ignorando las fechas, es decir, considerando solamente las horas, como si fuesen dentro del mismo día.


Ejemplo:

d = date_compare_time(date_create_datetime( 2011, 9, 15, 11, 4, 0 ), date_current_datetime());

Esto asigna a "d" el valor correspondiente, dependiendo cuál de las horas es más temprana. Básicamente, si la hora actual es más tarde que las 11:04 am, devuelve 1. Si es más temprana, -1. Si actualmente son las 11:04, devuelve 0.




date_date_of

Devuelve sección correspondiente a la fecha en un valor fecha y tiempo completo.


Sintaxis:

date_date_of(date);


Argumento Descripción
date La Fecha y hora de la que se extraerá la fecha.

Devuelve: Real


Descripción

Devuelve sólo la fecha de un valor fecha-hora dado.


Ejemplo:

hoy = date_date_of(date_current_datetime());

Esto devolverá únicamente la fecha actual y guardara el valor en la variable "hoy".




date_date_string

Devuelve una cadena indicando la fecha dada en el formato por defecto del sistema.


Syntax:

date_date_string(date);


Argumento Descripción
date la fecha a usar.

Devuelve: Cadena


Descripción

Esta función permite crear una cadena que contiene la fecha indicada, con el formato del sistema o dispositivo que ejecuta el juego cuando la función es llamada.


Example:

str = date_date_string(date_current_datetime());

Este código establecerá la variable str a algo como: "Junio 12 2014", dependiendo de la configuración de la fecha y hora del sistema.




date_datetime_string

Devuelve una cadena indicando la fecha y hora dadas, en el formato por defecto del sistema.


Sintaxis:

date_datetime_string(date);


ArgumentoDescripción
date La fecha a usar.

Devuelve: Cadena


Descripción:

Esta función se utiliza para crear una cadena conteniendo la fecha especificada, formateada para el sistema o dispositivo que ejecuta el juego.


Ejemplo:

str = date_datetime_string(date_current_datetime());

Esto ajusta "str" a algo como "Mayo 20th 2014, 11:33.00", dependiendo de la configuración de fecha y hora del sistema y de la fecha y hora actuales.





date_hour_span

Devuelve el numero de horas entre dos fechas dadas.


Syntax:

date_hour_span(date1, date2);


Argumento Descripción
date1 La primer Fecha-hora..
date2 La fecha-hora a comparar con la primera.

Returns: Real


Descripción

Mediante esta función puedes obtener el número de horas entre dos fechas. Este valor siempre será positivo y las horas incompletas serán devueltas como fracciones.


Ejemplo:

diff = date_hour_span(date_create_datetime( 2011, 9, 15, 11, 4, 0 ), date_current_datetime());

Este código ajustará "diferencia" al número de horas entre el 15 de septiembre de 2011, 11:04.0 y la fecha y hora actual.




date_day_span

Devuelve el número de días entre dos fechas.


Sintaxis:

date_day_span(date1, date2);


ArgumentoDescripción
date1 La primer fecha-hora.
date2 La segunda fecha-hora.

Devuelve: Real


Descripción

Mediante esta función se puede conocer el número de días entre dos fechas. El valor devuelto siempre es positivo; días incompletos se devolverán como fracción.


Ejemplo:

diff = date_day_span(date_create_datetime(2011, 9, 15, 11, 4, 0), date_current_datetime());

Este código ajusta diff al número de días entre el 15t de Septiembre de 2011, 11:04.0 y la fecha-hora actual.




date_days_in_month

Devuelve el número de días que tiene el mes indicado en la fecha.

Sintaxis:

date_days_in_month(date);


ArgumentoDescripción
date The date to use.

Devuelve: Real


Descripción

Esta función se usa para conocer el número de días que tiene el mes indicado, ya sea 28, 29, 30 ó 31.


Ejemplo:

days = date_days_in_month(date_current_datetime());

El código anterior ajusta "days" al número de días del mes actual.




date_days_in_year

Devuelve el número de días del año en la fecha indicada.


Sintaxis:

date_days_in_year(date);


Argumento Descripción
date La fecha a usar.

Devuelve: Real


Descripción

Esta función permite conocer el número de días que tiene el año, según la fecha indicada, devolviendo 365 para un año normal y 366 si el año es bisiesto.


Ejemplo:

days = date_days_in_year(date_current_datetime());

Esto ajusta la variable "days" al número de días del año actual.




date_get_second

Devuelve el segundo correspondiente a la fecha-hora..

Sintaxis:

date_get_second(date);


Argumento Descripción
date La fecha-hora a analizar.

Devuelve: Real


Descripción

Esta función devuelve el segundo correspondiente al valor fecha-hora dado.


Ejemplo:

mysecond = date_get_second(date_current_datetime());

Esto ajusta la variable mysecond al valor del segundo actual.




date_get_minute

devuelve el minuto correspondiente a la fecha introducida.


Sintaxis:

date_get_minute(date);


ArgumentoDescripción
date La fecha a revisar.

Devuelve: Real


Descripción

Esta función devuelve el minuto de la fecha especificada.


Ejemplo:

myminute = date_get_minute(date_current_datetime());

Esto ajusta "myminute" al minuto actual.




date_get_day

Devuelve el día correspondiente a la fecha.


Sintaxis:

date_get_day(date);


ArgumentoDescripción
date La fecha-hora a revisar.

Devuelve: Real

Descripción

Esta función devuelve el día (de 1 a 31) de la fecha-hora dada.

Ejemplo:

myday = date_get_day( date_current_datetime() );

Este código ajusta la variable "myday" al día actual.




date_get_weekday

Devuelve el día correspondiente a la fecha-hora indicada.


Sintaxis:

date_get_weekday(date);


Argumento Descripción
date La fecha a revisar.

Devuelve: Real


Descripción:

Esta función devuelve el valor del día correspondiente a la semana, según la fecha-hora introducida. El valor del día va desde 1 hasta 7.


Ejemplo:

myweekday = date_get_weekday(date_current_datetime());

Este código ajusta "myweekday" al día actual.


date_get_week

devuelve qué semana corresponde a la fecha.

Sintaxis:

date_get_week(date);


ArgumentoDescripción
date La fecha a revisar

Devuelve: Real


Descripción

Esta función devuelve la semana del año correspondiente a la fecha especificada (basándose en el número total de minutos transcurridos, tomando en cuenta años bisiestos).


Ejemplo:

myweek = date_get_week(date_current_datetime());

Esto ajusta myweek a la semana actual.




date_get_month

Devuelve el mes correspondiente a la fecha-hora.


Syntax:

date_get_month(date);


ArgumentoDescripción
date La fecha-hora a revisar.

Devuelve: Real


Descripción

Esta función devuelve el mes correspondiente al valor fecha-hora dado.


Ejemplo:

mymonth = date_get_month(date_current_datetime());

Esto ajusta la variable mymonth al valor del mes actual.




date_get_year

Extrae el año de un valor fecha-hora.


Sintaxis:

date_get_year(date);


ArgumentoDescripción
date La fecha-hora a revisar.

Devuelve: Real


Descripción

Esta función devuelve el año del formato fecha-hora indicado.


Ejemplo:

myyear = date_get_year(date_current_datetime());

Este código ajusta "myyear" al año actual.




date_get_second_of_year

Returns the second of the year corresponding to the datetime.

Sintaxis:

date_get_second_of_year( date );


ArgumentoDescripción
date La fecha a revisar.

Devuelve: Real


Descripción

Esta función devuelve el segundo del año del valor fecha-hora dado (del total de segundos del año, teniendo en cuenta años bisiestos).


Ejemplo:

mysecondyear = date_get_second_of_year(date_current_datetime());

Esto ajusta la variable "mysecondyear" al segundo actual del año en curso.




date_get_minute_of_year

Devuelve el minuto del año correspondiente a la fecha-hora indicada.


Sintaxis:

date_get_minute_of_year(date);


ArgumentoDescripción
date La fecha a revisar.

Devuelve: Real


Descripción

Esta funcion devuelve el minuto del año del valor fecha-hora dado (del total de minutos del año, teniendo en cuenta años bisiestos).


Ejemplo:

myminuteyear = date_get_minute_of_year(date_current_datetime());

Esto asigna a la variable myminuteyear el minuto actual del presente año.




date_get_hour_of_year

Ddevuelve la hora del año según la fecha indicada.


Sintaxis:

date_get_hour_of_year(date);


ArgumentoDescripción
date La fecha a revisar.

Devuelve: Real


Descripción

Esta función devuelve la hora correspondiente a la fecha especificada (considerando el número total de horas del año, tomando en cuenta años bisiestos).


Ejemplo:

myhouryear = date_get_hour_of_year(date_current_datetime());

El código anterior ajusta "myhouryear" a la hora actual del año.




date_get_day_of_year

Devuelve el día del año correspondiente a la fecha.


Sintaxis:

date_get_day_of_year( date );


Argumento Descripción
date La fecha a revisar.

Devuelve: Real

Descripción

Esta función devuelve el día (de 1 a 366) del año de la fecha dada.

Ejemplo:

mydayyear = date_get_day_of_year(date_current_datetime());

El código anterior ajusta la variable mydayyear al día actual.




date_inc_day

Devuelve la fecha-hora luego de que se le han añadido un número dado de días.


Sintaxis:

date_inc_day(date, amount);


ArgumentoDescripción
date La fecha-hora a la que agregar días.
amount El número de días a agregar (debe ser un entero).

Devuelve: Real


Descripción

Esta función incrementa una fecha-hora dada, según se especifique un número de días, devolviendo el valor de la nueva fecha-hora.




Ejemplo:

mynewdatetime = date_inc_day(date_current_datetime(), 365);

Esto ajustará el valor de "minuevafecha" a la fecha actual pero ademas le añadirá 365 días.

get_timer

Devuelve el tiempo transcurrido desde que el juego comenzó.

Sintaxis:

get_timer();


Devuelve: Real

Descripción

Esta función devuelve el valor del temporizador: que equivale al tiempo que el juego ha estado ejecutándose en la plataforma elegida en microsegundos (hay 1 millón de microsegundos en un segundo).


Ejemplo:

time = get_timer();

Este código almacena el valor del temporizador en la variable "time".




delta_time

El tiempo transcurrido (microsegundos) entre un STEP y otro.


Sintaxis:

delta_time


Devuelve: Real

Descripción

El propósito del cronometraje delta es eliminar los efectos del retrazo o ralentización en las computadoras que ejecutan gran cantidad de código o realizan tareas gráficas complejas. El tiempo delta es un valor que puede agregarse a la velocidad de los objetos para lograr que se muevan eventualmente a la misma velocidad a pesar de la ralentización. En GameMaker:Studio, esto se logra usando la variable de sólo lectura delta_time en cada paso, ya que ésta mide el tiempo que ha pasado entre un step y el próximo en microsegundos (1 microsegundo es la millonésima parte de un segundo). Por lo tanto, la variable delta_time se puede usar, por ejemplo, para calcular qué tan rápido un personaje se tiene que mover para evitar el efecto de un periodo de lag en el juego.


Ejemplo:

speed = spd * (ot - delta_time);

El código anterior ajusta la velocidad de la instancia usando delta-time para corregir el retraso. La variable "ot" se debe usar para almacenar el valor previo de delta_time, de tal modo que el factor pueda ser usado para multiplicar el valor base de la velocidad (almacenado en la variable "spd") y obtener una velocidad consistente para la instancia.