]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Added tm_format_reltime() for formatting of relative time quantities.
authorMartin Mares <mj@ucw.cz>
Wed, 1 Dec 1999 11:59:00 +0000 (11:59 +0000)
committerMartin Mares <mj@ucw.cz>
Wed, 1 Dec 1999 11:59:00 +0000 (11:59 +0000)
sysdep/unix/io.c
sysdep/unix/timer.h

index 511c949726c9b81793280dfe12938a81820c7989..f465da454b1273c4b6ed501ef9ef3c10a367aa64 100644 (file)
@@ -27,6 +27,7 @@
 #include "lib/timer.h"
 #include "lib/socket.h"
 #include "lib/event.h"
+#include "lib/string.h"
 #include "nest/iface.h"
 
 #ifdef IPV6
@@ -253,6 +254,24 @@ tm_format_date(char *x, bird_clock_t t)
   sprintf(x, "%02d-%02d-%04d", tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900);
 }
 
+void
+tm_format_reltime(char *x, bird_clock_t t)
+{
+  struct tm *tm;
+  bird_clock_t delta = now - t;
+  static char *month_names[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
+
+  tm = localtime(&t);
+  if (delta < 0)
+    strcpy(x, "?fut?");
+  else if (delta < 20*3600)
+    bsprintf(x, "%02d:%02d", tm->tm_hour, tm->tm_min);
+  else if (delta < 360*86400)
+    bsprintf(x, "%s%02d", month_names[tm->tm_mon], tm->tm_mday);
+  else
+    bsprintf(x, "%d", tm->tm_year+1900);
+}
+
 /*
  *     Sockets
  */
index 482f531cbe67df1136f2c81afb2623a6f10cceee..242b330bead2bc29a41c36a2f891148df4ed0051 100644 (file)
@@ -35,6 +35,8 @@ 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 */
+void tm_format_reltime(char *, bird_clock_t);  /* Convert bird_clock_t to relative datetime string */
+#define TM_RELTIME_BUFFER_SIZE 12      /* Buffer size required by tm_format_time */
 
 #ifdef TIME_T_IS_64BIT
 #define TIME_INFINITY 0x7fffffffffffffff