Sync usage with man page.
[netbsd-mini2440.git] / dist / ntp / libntp / uglydate.c
blob8c3bee0e0a3c49bbf27d2e1433c810fb41fe032b
1 /* $NetBSD$ */
3 /*
4 * uglydate - convert a time stamp to something barely readable
5 * The string returned is 37 characters long.
6 */
7 #include <stdio.h>
9 #include "ntp_fp.h"
10 #include "ntp_unixtime.h"
11 #include "lib_strbuf.h"
12 #include "ntp_stdlib.h"
15 char *
16 uglydate(
17 l_fp *ts
20 char *bp;
21 char *timep;
22 struct tm *tm;
23 time_t sec;
24 long msec;
25 int year;
27 timep = ulfptoa(ts, 6); /* returns max 17 characters */
28 LIB_GETBUF(bp);
29 sec = ts->l_ui - JAN_1970;
30 msec = ts->l_uf / 4294967; /* fract / (2**32/1000) */
31 tm = gmtime(&sec);
32 if (ts->l_ui == 0) {
34 * Probably not a real good thing to do. Oh, well.
36 year = 0;
37 tm->tm_yday = 0;
38 tm->tm_hour = 0;
39 tm->tm_min = 0;
40 tm->tm_sec = 0;
41 } else {
42 year = tm->tm_year;
43 while (year >= 100)
44 year -= 100;
46 (void) sprintf(bp, "%17s %02d:%03d:%02d:%02d:%02d.%03ld",
47 timep, year, tm->tm_yday, tm->tm_hour, tm->tm_min,
48 tm->tm_sec, msec);
49 return bp;