From 913f7dc9f2dca8bebf8daebcce006b96f55ae6db Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Tue, 3 Aug 1999 19:29:27 +0000 Subject: Added functions for parsing and formatting of dates. --- sysdep/unix/io.c | 27 +++++++++++++++++++++++++++ sysdep/unix/timer.h | 4 ++++ 2 files changed, 31 insertions(+) (limited to 'sysdep') diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c index 6d44f80..39cf200 100644 --- a/sysdep/unix/io.c +++ b/sysdep/unix/io.c @@ -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 */ diff --git a/sysdep/unix/timer.h b/sysdep/unix/timer.h index 10351a6..afb2668 100644 --- a/sysdep/unix/timer.h +++ b/sysdep/unix/timer.h @@ -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 -- cgit v1.2.3