PageRenderTime 58ms CodeModel.GetById 49ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/ntp/libntp/humandate.c

https://bitbucket.org/freebsd/freebsd-head/
C | 62 lines | 43 code | 14 blank | 5 comment | 2 complexity | 39da5502032d839719ff61a95aad50fe MD5 | raw file
 1/*
 2 * humandate - convert an NTP (or the current) time to something readable
 3 */
 4#include <stdio.h>
 5#include "ntp_fp.h"
 6#include "ntp_unixtime.h"	/* includes <sys/time.h> and <time.h> */
 7#include "lib_strbuf.h"
 8#include "ntp_stdlib.h"
 9
10static const char *months[] = {
11	"Jan", "Feb", "Mar", "Apr", "May", "Jun",
12	"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
13};
14static const char *days[] = {
15	"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
16};
17
18char *
19humandate(
20	u_long ntptime
21	)
22{
23	char *bp;
24	struct tm *tm;
25
26	tm = ntp2unix_tm(ntptime, 1);
27
28	if (!tm)
29		return "--- --- -- ---- --:--:--";
30
31	LIB_GETBUF(bp);
32	
33	(void) sprintf(bp, "%s, %s %2d %4d %2d:%02d:%02d",
34		       days[tm->tm_wday], months[tm->tm_mon], tm->tm_mday,
35		       1900+tm->tm_year, tm->tm_hour, tm->tm_min, tm->tm_sec);
36	
37	return bp;
38}
39
40
41/* This is used in msyslog.c; we don't want to clutter up the log with
42   the year and day of the week, etc.; just the minimal date and time.  */
43
44char *
45humanlogtime(void)
46{
47	char *bp;
48	time_t cursec = time((time_t *) 0);
49	struct tm *tm;
50	
51	tm = localtime(&cursec);
52	if (!tm)
53		return "-- --- --:--:--";
54
55	LIB_GETBUF(bp);
56	
57	(void) sprintf(bp, "%2d %s %02d:%02d:%02d",
58		       tm->tm_mday, months[tm->tm_mon],
59		       tm->tm_hour, tm->tm_min, tm->tm_sec);
60		
61	return bp;
62}