Added functions for parsing and formatting of dates.

This commit is contained in:
Martin Mares 1999-08-03 19:29:27 +00:00
parent 6542ece91a
commit 913f7dc9f2
3 changed files with 31 additions and 1 deletions

1
TODO
View file

@ -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?

View file

@ -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
*/

View file

@ -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