Added functions for parsing and formatting of dates.
This commit is contained in:
parent
6542ece91a
commit
913f7dc9f2
3 changed files with 31 additions and 1 deletions
1
TODO
1
TODO
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue