Tiempo
Acceso al reloj interno del computador.
Funciones
uint64_t | btime_now (void) |
void | btime_date (...) |
uint64_t | btime_to_micro (...) |
void | btime_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.
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); |
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. |