xref: /freebsd/contrib/ntp/libntp/humandate.c (revision a90b9d0159070121c221b966469c3e36d912bf82)
1 /*
2  * humandate.c - convert an NTP (or the current) time to something readable
3  */
4 #include <config.h>
5 #include <stdio.h>
6 
7 #include "ntp_fp.h"
8 #include "ntp_unixtime.h"	/* includes <sys/time.h> and <time.h> */
9 #include "ntp_stdlib.h"
10 
11 
12 /* This is used in msyslog.c; we don't want to clutter up the log with
13    the year and day of the week, etc.; just the minimal date and time.  */
14 
15 const char *
16 humanlogtime(void)
17 {
18 	char *		bp;
19 	time_t		cursec;
20 	struct tm *	tm;
21 
22 	cursec = time(NULL);
23 	tm = localtime(&cursec);
24 	if (!tm)
25 		return "-- --- --:--:--";
26 
27 	LIB_GETBUF(bp);
28 
29 	snprintf(bp, LIB_BUFLENGTH, "%2d %s %02d:%02d:%02d",
30 		 tm->tm_mday, months[tm->tm_mon],
31 		 tm->tm_hour, tm->tm_min, tm->tm_sec);
32 
33 	return bp;
34 }
35 
36 
37 /*
38  * humantime() -- like humanlogtime() but without date, and with the
39  *		  time to display given as an argument.
40  */
41 const char *
42 humantime(
43 	time_t cursec
44 	)
45 {
46 	char *		bp;
47 	struct tm *	tm;
48 
49 	tm = localtime(&cursec);
50 	if (!tm)
51 		return "--:--:--";
52 
53 	LIB_GETBUF(bp);
54 
55 	snprintf(bp, LIB_BUFLENGTH, "%02d:%02d:%02d",
56 		 tm->tm_hour, tm->tm_min, tm->tm_sec);
57 
58 	return bp;
59 }
60