SDK Multiplataforma en C logo

SDK Multiplataforma en C

Tiempo

❮ Anterior
Siguiente ❯

Acceso al reloj interno del computador.


Funciones

uint64_tbtime_now (void)
voidbtime_date (...)
uint64_tbtime_to_micro (...)
voidbtime_to_date (...)

El sistema operativo mide el paso del tiempo utilizando un reloj interno, implementado típicamente mediante un contador de los ticks que han pasado desde un instante inicial denominado epoch. En sistemas tipo Unix este contador representa el número de segundos transcurridos desde el 1 de Enero de 1970 UTC. Sin embargo, en Windows representa el número de intervalos de 100 nanosegundos desde el 1 de Enero de 1601 coincidiendo con el inicio del calendario Gregoriano. En NAppGUI se han unificado estos valores para trabajar con el Unix Epoch en todas las plataformas.

  • Utiliza btime_now para obtener el número de micro-segundos trascurridos desde el 1 de Enero de 1970 UTC.
  • Utiliza btime_date para obtener la fecha del sistema.
  • Utiliza btime_to_micro y btime_to_date para convertir fechas en Unix Time y viceversa.
  • Imagen que muestra el segundo 0 del Unix Epoch.
    Figura 1: Instante 0 del Unix Epoch.

La diferencia entre dos instantes nos dará el tiempo transcurrido durante la ejecución de una tarea.

1
2
3
4
5
6
7
uint64_t ed, st = btime_now();

// Do something...
...

ed = btime_now();
bstd_printf("Total elapsed micro-seconds: %lu\n", ed - st);
❮ Anterior
Siguiente ❯

btime_now ()

Obtiene el número de micro-segundos trascurridos desde el 1 de Enero de 1970 UTC (Unix Time) hasta este preciso momento. Utiliza la diferencia entre instantes para saber el tiempo consumido por un proceso.

uint64_t
btime_now(void);

Retorna

El número de micro-segundos transcurridos, es decir, el número de intervalos de 1/1000000 segundos.

Observaciones

El instante inicial es el 1 de Enero de 1970 en sistemas Unix/Linux y el 1 de Enero de 1601 en Windows ya que es el primer año del ciclo Gregoriano en el que fue activado Windows NT. Esta función equipara ambos inicios, devolviendo siempre el tiempo Unix.


btime_date ()

Obtiene la fecha actual del sistema.

void
btime_date(Date *date);
date

La fecha actual.


btime_to_micro ()

Convierte una fecha en Tiempo Unix.

uint64_t
btime_to_micro(const Date *date);
date

La fecha a convertir.

Retorna

El número de micro-segundos desde 1 de Enero de 1970 UTC.


btime_to_date ()

Transforma el Tiempo Unix en una fecha.

void
btime_to_date(const uint64_t micro,
              Date *date);
micro

Número de micro-segundos desde el 1 de Enero de 1970 UTC.

date

Fecha resultado.

❮ Anterior
Siguiente ❯