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