Commit | Line | Data |
---|---|---|
810b1430 | 1 | /* |
9d72a529 KB |
2 | * Copyright (c) 1985 The Regents of the University of California. |
3 | * All rights reserved. | |
4 | * | |
836fe169 | 5 | * %sccs.include.redist.c% |
810b1430 DF |
6 | */ |
7 | ||
166793b0 | 8 | #ifndef lint |
836fe169 | 9 | static char sccsid[] = "@(#)get_date.c 5.4 (Berkeley) %G%"; |
9d72a529 | 10 | #endif /* not lint */ |
166793b0 RC |
11 | |
12 | #include <stdio.h> | |
13 | #include <sys/time.h> | |
14 | ||
15 | static char *days[] = { | |
16 | "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" | |
17 | }; | |
18 | ||
19 | static char *months[] = { | |
20 | "Jan", "Feb", "Mar", "Apr", "May", "June", | |
21 | "July", "Aug", "Sept", "Oct", "Nov", "Dec" | |
22 | }; | |
23 | ||
24 | #define AM "am" | |
25 | #define PM "pm" | |
26 | ||
27 | get_date(datebuffer) | |
28 | char *datebuffer; | |
29 | { | |
30 | struct tm *localtime(), *tmp; | |
31 | struct timeval tv; | |
32 | int realhour; | |
33 | char *zone; | |
34 | ||
35 | gettimeofday(&tv, 0); | |
36 | tmp = localtime(&tv.tv_sec); | |
37 | ||
38 | realhour = tmp->tm_hour; | |
39 | zone = AM; /* default to morning */ | |
40 | if (tmp->tm_hour == 0) | |
41 | realhour = 12; /* midnight */ | |
42 | else if (tmp->tm_hour == 12) | |
43 | zone = PM; /* noon */ | |
44 | else if (tmp->tm_hour >= 13 && tmp->tm_hour <= 23) { /* afternoon */ | |
45 | realhour = realhour - 12; | |
46 | zone = PM; | |
47 | } | |
48 | ||
49 | /* format is '8:10pm on Sunday, 16 Sept 1973' */ | |
50 | ||
9bd38ba8 | 51 | (void)sprintf(datebuffer, "%d:%02d%s on %s, %d %s %d", |
166793b0 RC |
52 | realhour, |
53 | tmp->tm_min, | |
54 | zone, | |
55 | days[tmp->tm_wday], | |
56 | tmp->tm_mday, | |
57 | months[tmp->tm_mon], | |
58 | 1900 + tmp->tm_year); | |
59 | } |