summaryrefslogtreecommitdiffstats
path: root/sysdep/unix/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdep/unix/io.c')
-rw-r--r--sysdep/unix/io.c27
1 files changed, 27 insertions, 0 deletions
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
*/