aprendiendo ( Erlang ).

martes, 10 de enero de 2012

Fechas, horas (calendar).

| 0 comentarios |

En este capítulo vamos a hablar de fecha y/o horas. Siempre es útil conocer lo que un lenguaje te proporciona para el manejo de este tipo de datos. Erlang tiene el módulo calendar para estos menesteres.
El tipo hora o time es una tupla con la forma {horas, minutos, segundos}. El tipo fecha o date tiene la forma {año, mes, día}. Y consecuentemente, el tipo fechahora o datetime tiene la forma {fecha, hora}. Una vez visto como se conforman, veamos algunas funciones que nos proporciona Erlang:

  • erlang:date() -> Fecha: retorna la fecha del sistema.
  • erlang:time() -> Hora: retorna la hora del sistema.
  • local_time() -> FechaHora: retorna la fecha y hora local del sistema.
  • universal_time() -> FechaHora: calcula la fecha hora en el sistema universal UTC.
  • universal_time_to_local_time(FechaHora1) -> FechaHora2: convierte la fecha sistema universal UTC al local.
  • local_time_to_universal_time(FechaHora1) -> FechaHora2: convierte la fecha local al sistema universal UTC.
  • date_to_gregorian_days(Fecha) -> Número: calcula el número de días de una fecha desde el año 0.
  • date_to_gregorian_days(Año, Mes, Día) -> Número: igual que la función anterior.
  • datetime_to_gregorian_seconds(FechaHora) -> Número: calcula el número de segundos desde el año 0 hasta la fecha dada.
  • day_of_the_week(Fecha) -> diaSemana: retorna el día de la semana de una fecha dada. 1=lunes, 2=martes, etc...
  • day_of_the_week(Año, Mes, Día) -> diaSemana: igual que la función anterior.
  • gregorian_days_to_date(NumDias) -> Fecha: calcula una fecha a partir del número de días.
  • gregorian_seconds_to_datetime(NumSegundos) -> FechaHora: calcula un FechaHora a partir del número de segundos proporcionados.
  • is_leap_year(Año) -> bool: devuelve true si el año es bisiesto.
  • valid_date(Fecha) -> bool: indica si la fecha pasada es una fecha valida.
  • valid_date(Año, Mes, Día) -> bool: igual que la función anterior.
  • last_day_of_the_month(Año, Mes) -> NumDia: calcula el último día del mes (30, 31, 28, 29)
  • seconds_to_daystime(Segundos) -> {Dias, Tiempo}: calcula el número de días, horas, minutos y segundos en lo que podemos separar los segundos. pasadaos.
  • seconds_to_time(Segundos) -> Hora: igual que la función anterior pero para sólo de horas, minutos y segundos.
  • time_difference(FechaHora1, FechaHora2) -> {Dias, Tiempo}: Retorna la diferencia entre dos fechaHora.

Veamos algunos ejemplos:
1>erlang:date().
{2011,12,31}
2> erlang:time().
{17,6,57}
3> FechaHora = {Fecha={Ano, Mes, Dia}, Tiempo={Hora, Minuto, Segundo}}=calendar:local_time().
{{2011,12,31},{17,6,57}}
4> calendar:date_to_gregorian_days(Fecha).
734867
5> calendar:datetime_to_gregorian_seconds(FechaHora). 
63492570417
6> 
6> calendar:is_leap_year(Ano).
false
7> calendar:last_day_of_the_month(2013, 02).
28
9> calendar:day_of_the_week(Fecha).
6
10> calendar:time_difference(FechaHora, calendar:local_time()).
{0,{0,0,1}}

Publicar un comentario

0 comentarios:

 
Licencia Creative Commons
Aprendiendo Erlang por Verdi se encuentra bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 3.0 Unported.