Added tm_format_reltime() for formatting of relative time quantities.
This commit is contained in:
parent
6781e5213b
commit
afa8937ac8
2 changed files with 21 additions and 0 deletions
|
@ -27,6 +27,7 @@
|
||||||
#include "lib/timer.h"
|
#include "lib/timer.h"
|
||||||
#include "lib/socket.h"
|
#include "lib/socket.h"
|
||||||
#include "lib/event.h"
|
#include "lib/event.h"
|
||||||
|
#include "lib/string.h"
|
||||||
#include "nest/iface.h"
|
#include "nest/iface.h"
|
||||||
|
|
||||||
#ifdef IPV6
|
#ifdef IPV6
|
||||||
|
@ -253,6 +254,24 @@ tm_format_date(char *x, bird_clock_t t)
|
||||||
sprintf(x, "%02d-%02d-%04d", tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900);
|
sprintf(x, "%02d-%02d-%04d", tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
tm_format_reltime(char *x, bird_clock_t t)
|
||||||
|
{
|
||||||
|
struct tm *tm;
|
||||||
|
bird_clock_t delta = now - t;
|
||||||
|
static char *month_names[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
|
||||||
|
|
||||||
|
tm = localtime(&t);
|
||||||
|
if (delta < 0)
|
||||||
|
strcpy(x, "?fut?");
|
||||||
|
else if (delta < 20*3600)
|
||||||
|
bsprintf(x, "%02d:%02d", tm->tm_hour, tm->tm_min);
|
||||||
|
else if (delta < 360*86400)
|
||||||
|
bsprintf(x, "%s%02d", month_names[tm->tm_mon], tm->tm_mday);
|
||||||
|
else
|
||||||
|
bsprintf(x, "%d", tm->tm_year+1900);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sockets
|
* Sockets
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -35,6 +35,8 @@ extern bird_clock_t now; /* Time in seconds since unknown epoch */
|
||||||
bird_clock_t tm_parse_date(char *); /* Convert date to bird_clock_t */
|
bird_clock_t tm_parse_date(char *); /* Convert date to bird_clock_t */
|
||||||
void tm_format_date(char *, bird_clock_t); /* Convert bird_clock_t to date */
|
void tm_format_date(char *, bird_clock_t); /* Convert bird_clock_t to date */
|
||||||
#define TM_DATE_BUFFER_SIZE 12 /* Buffer size required by tm_format_date */
|
#define TM_DATE_BUFFER_SIZE 12 /* Buffer size required by tm_format_date */
|
||||||
|
void tm_format_reltime(char *, bird_clock_t); /* Convert bird_clock_t to relative datetime string */
|
||||||
|
#define TM_RELTIME_BUFFER_SIZE 12 /* Buffer size required by tm_format_time */
|
||||||
|
|
||||||
#ifdef TIME_T_IS_64BIT
|
#ifdef TIME_T_IS_64BIT
|
||||||
#define TIME_INFINITY 0x7fffffffffffffff
|
#define TIME_INFINITY 0x7fffffffffffffff
|
||||||
|
|
Loading…
Reference in a new issue