Commit 913f7dc9 authored by Martin Mareš's avatar Martin Mareš

Added functions for parsing and formatting of dates.

parent 6542ece9
......@@ -7,7 +7,6 @@ Core
- prefer loopback addresses as router IDs (dummy interface?)
- config: executable config files
- config: better format for datetime then seconds
- do we really need preconfig?
......
......@@ -217,6 +217,33 @@ tm_shot(void)
}
}
bird_clock_t
tm_parse_date(char *x)
{
struct tm tm;
int n;
time_t t;
if (sscanf(x, "%d-%d-%d%n", &tm.tm_mday, &tm.tm_mon, &tm.tm_year, &n) != 3 || x[n])
return 0;
tm.tm_mon--;
tm.tm_year -= 1900;
tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
t = mktime(&tm);
if (t == (time_t) -1)
return 0;
return t;
}
void
tm_format_date(char *x, bird_clock_t t)
{
struct tm *tm;
tm = localtime(&t);
sprintf(x, "%02d-%02d-%04d", tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900);
}
/*
* Sockets
*/
......
......@@ -32,4 +32,8 @@ void tm_dump_all(void);
extern bird_clock_t now; /* Time in seconds since unknown epoch */
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 */
#define TM_DATE_BUFFER_SIZE 12 /* Buffer size required by tm_format_date */
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment